To build an iPhone game in Unity, you install Unity with the iOS build support module, configure the iOS Player Settings, develop with the Metal renderer and URP, wire touch input, add IAP with Sign in with Apple, profile on device with Xcode Instruments, then submit an IPA through TestFlight to the App Store.
Unity setup for iOS: Xcode toolchain and build support module
An iPhone game in Unity starts with a working Apple toolchain on macOS. Install the latest Xcode from the Mac App Store, accept the Xcode license, and install the iOS Platform via Xcode > Settings > Platforms. In Unity Hub, add the iOS Build Support module to the Unity version you plan to ship on, plus iOS Build Support (IL2CPP) since IL2CPP is the required scripting backend for iOS. Sign in to an Apple Developer account and generate the signing certificate and provisioning profile before the first build. Studios that want the setup handled end to end can bring in a Unity game development team to own the toolchain from day one.
Unity 6 and Unity 2022 LTS both target iOS with Metal by default. Older projects that still ship with OpenGL ES should switch to Metal in Player Settings, since Apple has deprecated OpenGL ES for new iOS versions. For a broader look at where Unity fits against other engines, see our guide on Unity for game development.
iOS project configuration in Unity Player Settings
iOS Player Settings are where an iPhone game in Unity gets its bundle identifier, target device family, minimum iOS version, and orientation. Set the Bundle Identifier to a reverse-domain string that matches the App ID registered in the Apple Developer portal. Choose Target Device (iPhone Only, iPad Only, or iPhone + iPad) and set Target Minimum iOS Version conservatively for the audience the game addresses. Enable Auto Graphics API and keep Metal at the top of the list.
Configure Architecture to ARM64, since Apple rejects 32-bit binaries. Set the Scripting Backend to IL2CPP and pick a suitable C++ Compiler Configuration. Camera Usage Description, Microphone Usage Description, and Photo Library Usage Description strings should be filled if the game touches those APIs, since Apple rejects builds that access them without the correct Info.plist entries.
Metal renderer and URP for iPhone visuals
Metal is the graphics API for every current iPhone. Unity renders through Metal via the Scriptable Render Pipeline, and Universal Render Pipeline is the mobile-friendly default. URP gives forward rendering, a slim shader library, and predictable draw call cost, which suits the thermal and battery limits of an iPhone. Built-in Render Pipeline still works for legacy projects, but URP has better long-term support in Unity 6.
| Render pipeline | Draw call cost on iPhone | Mobile fit | Visual quality ceiling |
|---|---|---|---|
| URP | Low, batched | Recommended for iPhone games | Good, up to stylised and semi-realistic |
| Built-in (BiRP) | Moderate | Works for legacy iOS projects | Good, but slower iteration in Unity 6 |
| HDRP | High, desktop-class | Not suited for iPhone | High, but blocked by iOS GPU budgets |
For most iPhone titles the render choice is URP. HDRP targets desktop and console GPUs and does not fit iPhone thermal envelopes.
Touch input and the Input System
Touch is the primary input for an iPhone game in Unity. The new Input System package supports touch, gyro, accelerometer, on-screen controls, and MFi controllers behind a single API. Legacy Input still works for small projects, but the Input System is the current standard for cross-device gesture handling.
Common patterns include on-screen joystick prefabs, swipe recognisers, and gyro-driven camera control. Test on a mid-range device (for example an iPhone 12 or iPhone SE) to confirm gestures behave the same on smaller screens.
IAP, Sign in with Apple, and Game Center
Monetisation on iPhone runs through Apple’s StoreKit. Unity IAP wraps StoreKit consumables, non-consumables, and auto-renewing subscriptions. Products are declared in App Store Connect, then referenced by product identifier in the Unity project. Server-side receipt validation is strongly recommended for anything past a small free-to-play scope. This is the same monetisation layer that a broader mobile game development scope has to plan for on both iOS and Android.
Sign in with Apple is required if the game offers third-party sign-in options such as Google or Facebook. It integrates through the Sign in with Apple plugin or a native Swift bridge. Game Center handles leaderboards and achievements through Unity’s Social API and adds native iOS overlays for player profile and multiplayer matchmaking where relevant.
Push notifications and App Tracking Transparency
Push notifications on iOS need Apple Push Notification service, an APNs key or certificate, and Notification Service Extension when rich payloads are involved. Unity Mobile Notifications for iOS covers local scheduling and remote APNs registration.
App Tracking Transparency is the required prompt whenever the game shares user data across apps for tracking, including most ad SDKs and cross-app attribution. The ATT prompt is displayed once per install; the copy in the NSUserTrackingUsageDescription string decides whether users consent. Ad revenue drops sharply when tracking is denied, so plan monetisation with both consented and non-consented cohorts in mind.
Performance profiling with Unity Profiler and Xcode Instruments
Performance work on an iPhone game in Unity is always on-device. The Unity Profiler attaches over USB or Wi-Fi and reports frame time, CPU cost, GC allocations, and render statistics for the running build. Xcode Instruments adds GPU timings, Metal frame captures, memory graphs, energy impact, and thermal state. Together they cover most iOS performance issues without guesswork.
Common wins on iPhone include reducing per-frame allocations, batching UI, keeping draw calls under the target budget, using texture compression (ASTC for iOS), and enabling GPU instancing on repeated meshes. Thermal throttling starts within minutes on a sustained load, so a 60 FPS build in the editor can drop to 30 FPS on a warm iPhone if the frame budget is tight.
Build size, IPA packaging, App Thinning, and Bitcode retirement
Unity builds an Xcode project from File > Build Settings > iOS. Xcode then compiles, signs, and archives the app into an IPA for upload. App Thinning slices the archive into a device-specific bundle at download time, so the user only receives assets, shaders, and code paths their device needs. Enabling On Demand Resources further reduces first-install size by delivering optional assets on request.
Bitcode is no longer required. Apple retired Bitcode with Xcode 14, and current App Store submissions ignore it. Keep the Enable Bitcode flag off in Build Settings. Focus size reduction on texture compression (ASTC), audio bitrate, mesh compression, and stripping unused Managed Code with IL2CPP High stripping level. Teams porting an existing Unity project to iOS for the first time often lean on a game porting team for this packaging pass.
TestFlight, App Store submission, and Review Guidelines
TestFlight is Apple’s internal and external beta service for iPhone games. Upload the signed IPA through Xcode Organizer or Transporter, wait for the build to finish processing in App Store Connect, then invite internal testers (up to 100 team members) or external testers (up to 10,000). External TestFlight builds go through a light Apple review, usually within 24 hours.
Full App Store submission requires the same IPA, a completed App Store Connect listing (name, subtitle, description, keywords, category, screenshots for required device sizes, App Preview videos if used), pricing, and age rating. Apple reviews against the App Store Review Guidelines which cover safety, performance, business, design, and legal criteria. First-time reviews often flag missing usage-description strings, IAP metadata, or minor UI issues on smaller device sizes.
Privacy manifest and App Store required disclosures
Since May 2024, Apple requires a privacy manifest (PrivacyInfo.xcprivacy) for new and updated apps that include SDKs on Apple’s Commonly Used SDKs list. The manifest declares data types collected, tracking status, and reasons for using API categories such as UserDefaults, FileTimestamp, or SystemBootTime. Unity’s own SDKs, ad SDKs, and analytics SDKs each publish their own privacy manifests that Unity merges into the final Xcode project.
App Store Connect also asks for App Privacy details: data types linked to the user, data used for tracking, and data collected but not linked. These declarations show as the privacy nutrition label on the App Store page. Missing or contradictory disclosures are a common rejection reason. Reference Unity’s iOS build documentation for the latest per-SDK manifest handling.
A mobile Unity case from Game-Ace
One shipped project shows how the pipeline above turns into a released mobile title.
Welcome to Demon Runner, a Unity mobile game by Game-Ace

Demon Runner is a mobile-first endless runner built in Unity with two-action reflex combat and light RPG progression. Game-Ace handled the entire development cycle for Android and iOS from a single Unity codebase, including gameplay systems and the launch-ready website.
Ready to scope your iPhone game in Unity?
If you are scoping an iPhone game in Unity, talk to Game-Ace.
When to talk to Game-Ace about iPhone game in Unity
iPhone releases in Unity move faster with a team that has shipped the pipeline before. Game-Ace has been building games since 2005, with 120+ in-house specialists and 200+ delivered titles including mobile Unity projects that went live on the App Store. The team covers Unity engineering, iOS platform integration, IAP and Sign in with Apple, TestFlight rollout, and App Store submission under team extension, co-development, or full-cycle delivery. For teams scoping a new iPhone title or porting an existing Unity project to iOS, see our Unity mobile game development guide, or talk to Game-Ace, a custom game development studio, that can plan the scope, staff the roles through hire Unity developers, and take the build through Apple review with full-cycle delivery.
How MetaHuman changes game character development
Game development for startups: budget and MVP guide
Engineering tower defense games from prototype to live service
Idle game development: a full production guide
Gamification in recruitment: what actually works























