How to Export a Unity Project to iOS
Unity-iPhone.xcodeproj — the input for the final Apple compile and signing stage.Exporting to iOS is straightforward once you know that Unity's output is a project, not an app. Here is the exact sequence, including the settings that cause rejections later if you skip them.
Step 1 — Install iOS Build Support
In Unity Hub → Installs, click the gear icon beside your Unity version and choose Add Modules. Tick iOS Build Support and install.
Without this module, iOS will not appear as a platform in Build Settings. This is the single most common reason people believe Unity "can't" target iOS on their machine.
Step 2 — Switch the platform
Open File → Build Settings, select iOS in the platform list, and click Switch Platform. Unity re-imports assets for the new target, which can take a while on a large project the first time.
Step 3 — Configure Player Settings
Click Player Settings and open Other Settings. These values matter:
- Bundle Identifier — reverse-DNS, e.g.
com.yourstudio.yourgame. Never ship Unity's defaultcom.DefaultCompany...; Apple rejects it. - Target minimum iOS Version — 13.0 or higher is a reasonable modern floor.
- Architecture — ARM64.
- Scripting Backend — IL2CPP (required for iOS).
- Camera, microphone and tracking usage descriptions — if your game or any SDK touches these, an empty description causes an App Store rejection.
Step 4 — Add your scenes
Back in Build Settings, drag every scene you want shipped into Scenes In Build. Scene 0 is your entry point. A build with no scenes produces an app that opens to a blank screen — a surprisingly common mistake.
Step 5 — Build
Click Build and choose an empty folder outside your Unity project directory. Unity runs IL2CPP, generates the C++ and writes the Xcode project.
The output folder contains Unity-iPhone.xcodeproj, the Classes and Libraries directories, and your assets. That whole folder is what the next stage consumes.
Step 6 — The part Unity doesn't do
To get an installable app you still need Apple's toolchain to compile, sign and package the project. On a Mac that means opening it in Xcode and choosing Product → Archive.
On Windows or Linux, that step runs on a cloud macOS machine instead — through Unity Build Automation, a CI runner, or a tool such as MacFree that performs the export, signing and TestFlight upload from inside the Unity Editor.
Settings that cause rejections later
Three items are worth getting right at export time rather than after a failed upload:
- App icon must be 1024×1024 and fully opaque — transparency triggers rejection ITMS-91111.
- Build number must increase on every upload, or App Store Connect returns error 90189.
- Unused packages can add capabilities you don't want. Unity's In-App Purchase package, for example, stamps an IAP capability onto the Xcode target even if nothing uses it, which then requires a matching provisioning profile.
Skip straight to TestFlight
MacFree exports, signs and uploads your Unity iOS build from Windows or Linux.
Get MacFree on the Unity Asset Store →Frequently asked questions
How do I export a Unity project to iOS?
Install the iOS Build Support module through Unity Hub, open File then Build Settings, select iOS and click Switch Platform, set a unique bundle identifier in Player Settings, add your scenes, then click Build. Unity produces a folder containing Unity-iPhone.xcodeproj.
Where does Unity save the iOS build?
Unity writes the exported Xcode project to whichever folder you select in the Build dialog. Choose an empty folder outside your Unity project directory to avoid the export being re-imported as project assets.
Why is iOS missing from my Unity build platforms?
The iOS Build Support module is not installed. Add it through Unity Hub by opening Installs, clicking the gear icon next to your Unity version, choosing Add Modules and ticking iOS Build Support.