How to Make an iPhone Game in Unity
Back to top

How to make an iPhone game in Unity

Dmytro Lunov

Written by

Dmytro Lunov Verified author

Head of Delivery and Program Director at Game-Ace

Dmytro leads Game-Ace delivery teams on game development, art production, game design, MVP prototyping, and Unity and Unreal Engine projects.

Published June 14, 2021 Updated September 9, 2026

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, 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.

Frequently searched questions about iPhone game in Unity

Unity is the practical choice for anything past a very small 2D game. SwiftUI and SpriteKit cover simple iOS-only titles but miss cross-platform builds, a mature asset pipeline, and third-party middleware. Unity ships to iPhone, Android, and web from one codebase, which shortens time to release.

Apple currently caps the compressed App Store IPA at 4 GB for iOS apps, with the whole download package (including on-demand resources) capped at 20 GB. Cellular downloads over 200 MB used to prompt a Wi-Fi warning, but that limit has been raised in recent iOS releases. Most Unity mobile games ship well under 500 MB after App Thinning, ASTC textures, and IL2CPP stripping.

Yes, Xcode on macOS is required to compile, sign, and upload the Unity iOS build to App Store Connect. Cloud build services such as Unity Cloud Build or third-party CI providers can run the macOS step remotely, but the Mac runner is still in the loop.

IAP setup starts in App Store Connect, where you register products (consumable, non-consumable, or auto-renewing subscription) and assign product identifiers. In Unity, the Unity IAP package or a third-party plugin such as the Unity Gaming Services purchasing service maps those identifiers to code. Sandbox testing runs through a sandbox Apple ID on a real device. Production releases need signed agreements, banking, and tax details filled in App Store Connect before purchases can go live.

TestFlight is where the Unity iOS build goes before the App Store. Internal builds reach up to 100 team members without Apple review. External builds reach up to 10,000 testers after a short beta review, usually cleared within a day. TestFlight collects crash reports and tester feedback that inform the final submission.

Rejections cluster around a short list of issues that every Unity iOS team meets sooner or later. The frequent ones include:
  • Missing usage-description strings for camera, microphone, photo library, or tracking.
  • IAP declared in code but not configured in App Store Connect, or without the correct product identifiers.
  • Sign in with Apple missing when the game offers third-party sign-in (required by Guideline 4.8).
  • Privacy manifest missing or contradicting the App Privacy answers in App Store Connect.
  • Crashes on launch on the smallest supported device or on an older iOS version.
  • Placeholder content, Lorem ipsum, or debug UI left in the shipped build.
  • Screenshots that do not match the actual on-device experience.
Reviewing the build against the App Store Review Guidelines before the first submission usually removes most of these.

A focused Unity iPhone game with a defined scope typically takes 3-6 months from GDD approval to store-ready build. Casual titles with a small feature set can ship in 2-3 months. Larger projects with multiplayer, live ops, or extensive content take 6-12 months. Timeline depends on team size, asset scope, and how much production infrastructure (CI, analytics, ad SDKs) is already in place.

Custom iPhone game development in Unity usually starts from €30,000 for a small focused title with a single game mode. A mid-size mobile Unity game with IAP, ads, analytics, and a moderate content set typically lands in the €60,000-€150,000 range. Cost scales with art scope, multiplayer backend, live ops, and platform coverage. An Apple Developer Program membership (currently €99 per year) is a fixed additional cost.
Average rating 4.6 / 5. Votes: 453
Related posts
Metahuman game character standing near realistic cars in unreal engine scene How MetaHuman changes game character development Game development for startups rocket in space Game development for startups: budget and MVP guide Tower defense games image preview Engineering tower defense games from prototype to live service Idle game development preview img Idle game development: a full production guide Gamification in recruitment preview Gamification in recruitment: what actually works
Futuristic game robot running through a purple portal
Get in touch
menu
Get in touch
Game-Ace logo loader