How to Export a Unity Game to Mobile
.apk or .aab directly from any OS. iOS produces an Xcode project that still needs Apple's toolchain to become an installable app.Exporting to Android and iOS looks similar in the Unity UI, but the two pipelines diverge sharply at the final step. Knowing where they differ saves a lot of confusion.
The shared setup
Both targets need the same groundwork:
- Install the platform module — Android Build Support (with SDK, NDK and JDK) or iOS Build Support — through Unity Hub.
- File → Build Settings → select the platform → Switch Platform.
- In Player Settings, set your bundle identifier (Android calls it the package name) in reverse-DNS form.
- Add every scene you want shipped to Scenes In Build.
- Set orientation, minimum OS version and icons.
Android: Unity finishes the job
Click Build and Unity produces an installable .apk, or an .aab (Android App Bundle) for Google Play. You can sideload the APK onto a device immediately.
For store distribution you also need a keystore to sign the build — create one in Player Settings → Publishing Settings and back it up carefully. Losing your keystore means you can never update that app listing again.
This all works on Windows, macOS and Linux with no extra hardware.
iOS: Unity hands off to Apple
Click Build and Unity produces a folder containing Unity-iPhone.xcodeproj — not an app. Apple's toolchain must then compile and code-sign it, which requires macOS.
You also need a paid Apple Developer Program membership, a distribution certificate and a provisioning profile before the build can be installed or uploaded anywhere.
The practical difference, summarised
| Android | iOS | |
|---|---|---|
| Unity output | Installable .apk / .aab | Xcode project |
| Extra toolchain | None | Xcode (macOS only) |
| Signing | Your own keystore | Apple certificate + profile |
| Store fee | $25 one-time | $99 per year |
| Build from Windows | Fully | Export only — final stage in the cloud |
Shipping iOS from a Windows machine
The iOS gap is closable without buying a Mac. Unity Build Automation, CI services with macOS runners, or an Editor tool like MacFree can run the Apple stage in the cloud and deliver the finished build to TestFlight.
Mobile settings worth getting right
- Texture compression — ASTC is the sensible default for both platforms today.
- IL2CPP + ARM64 — required for iOS, and required for 64-bit Google Play submissions.
- Managed stripping — reduces build size, but can strip code reached only via reflection; test after enabling.
- Icons — iOS needs a fully opaque 1024×1024 icon or the upload is rejected.
- Permission usage descriptions — an empty camera or microphone description causes an App Store rejection.
Ship both stores from one PC
Android already builds anywhere. MacFree adds iOS without a Mac.
Get MacFree on the Unity Asset Store →Frequently asked questions
How do I export a Unity game to mobile?
Install the Build Support module for Android or iOS via Unity Hub, switch the platform in Build Settings, set a bundle identifier in Player Settings, add your scenes and click Build. Android produces an installable apk or aab, while iOS produces an Xcode project that needs Apple's toolchain to finish.
Can I build both iOS and Android from the same Unity project?
Yes. One project targets both platforms; you switch platform in Build Settings. Only platform-specific settings such as icons, signing and permissions differ between them.
Why does Android build directly but iOS does not?
Unity can complete the Android toolchain itself using the Android SDK and NDK, which run on any operating system. Apple's iOS compiler and signing tools are macOS-only, so Unity stops at the Xcode project for iOS.