App Store (iOS)Unity

How to Publish a Unity App on the App Store

Unity is the most popular engine for mobile games, but its iOS publishing workflow has unique challenges. Unity generates an Xcode project from your game, which you then build and archive like any native app. The complexity comes from Unity's IL2CPP compilation, large binary sizes, and specific requirements for game-category apps on the App Store. This guide covers the entire process.

Prerequisites

  • A Mac with Xcode 15+ installed
  • Unity 2022.3 LTS or later with iOS Build Support module
  • An Apple Developer Program membership ($99/year)
  • Your game tested on physical iOS devices (simulator doesn't support GPU features)
  • Apple's Game Center configured (if applicable)

Step-by-Step Build Process

1

Configure Player Settings for iOS

In Unity, go to Edit > Project Settings > Player > iOS tab. Set the Bundle Identifier, Version, and Build Number. Choose 'IL2CPP' as the Scripting Backend (required for App Store). Set the Target SDK to 'Device SDK' and the Architecture to 'ARM64'.

2

Optimize for iOS

Set the 'Stripping Level' to 'High' to reduce binary size. Enable 'Strip Engine Code'. Configure texture compression to ASTC for best quality/size ratio on Apple GPUs. Set target frame rate to 60 or 30 depending on your game.

3

Build the Xcode project

Go to File > Build Settings. Select iOS platform, click 'Switch Platform' if needed. Click 'Build' (not 'Build and Run'). Unity generates a complete Xcode project with IL2CPP-compiled C++ code. This process can take 10-30 minutes depending on project size.

4

Open and configure in Xcode

Open the generated .xcodeproj (Unity doesn't use xcworkspace unless you add CocoaPods). Set the development team, fix any capability issues, and ensure all Unity frameworks are properly embedded.

5

Archive and validate

Select 'Any iOS Device' and go to Product > Archive. Validate the archive — Unity builds are often larger than expected. Check for missing framework embeds, especially for plugins like Firebase or Adjust.

Code Signing & Certificates

Configure signing in Xcode

Unity-generated Xcode projects may have signing issues. In the Unity-iPhone target, enable automatic signing and select your team. Also check the UnityFramework target — it needs signing too.

Handle framework signing

Third-party Unity plugins often include pre-built frameworks (.framework files). Ensure each is set to 'Embed & Sign' in the target's Frameworks section. Missing framework signing causes upload failures.

Store Submission Steps

1

Create the app in App Store Connect

Create a new app with your bundle ID. For games, select the appropriate game sub-category (Action, Puzzle, Strategy, etc.). Enable Game Center if your game uses leaderboards or achievements.

2

Upload via Xcode Organizer

Distribute the archive to App Store Connect. Unity builds include bitcode by default in older versions — disable it if the upload fails. The upload may take longer due to game assets.

3

Configure game-specific metadata

Upload gameplay screenshots and preview videos. For games, Apple encourages app preview videos showing actual gameplay. Set the age rating based on the IARC questionnaire — be accurate about violence, gambling mechanics, etc.

4

Submit for review

Complete all metadata. For games with in-app purchases, clearly document what each IAP provides. Apple scrutinizes loot boxes and random reward mechanics — ensure compliance with Guideline 3.1.1.

Common Rejection Reasons & Fixes

Guideline 4.0 - Design (Game quality)

Apple has high quality bars for games. Ensure your game has polished UI, smooth frame rates, and meaningful content. Unity's default splash screen should be replaced with a custom branded loading screen.

Guideline 3.1.1 - In-App Purchases

If your game has virtual currency or loot boxes, you must use Apple's IAP system. Don't link to external payment methods. Clearly disclose odds for randomized items. Use Unity's IAP package with Apple's StoreKit backend.

Binary size too large

Unity games can easily exceed 200MB. Use asset bundles for on-demand content. Enable app slicing. Compress textures with ASTC. Use Unity's Addressables system for downloading assets after install.

Crashes on older devices

Test on iPhone SE, iPad mini, and older devices. Unity's rendering pipeline may stress GPUs on older hardware. Implement quality settings tiers. Set a reasonable minimum iOS version (15.0+).

Pro Tips

  • Use Unity's 'Development Build' checkbox to easily toggle between debug and release — uncheck for final builds
  • Enable 'Prepare iOS for Recording' only if your game supports ReplayKit
  • Use Unity Addressables to keep the initial download under 200MB — App Store has a cellular download limit
  • Replace Unity's default splash screen with your game's branding for a more polished experience
  • Use Xcode Instruments to profile GPU and CPU performance on real devices before submission

Skip the hassle. Let us handle it.

Publishing a Unity app on the App Store (iOS) involves dozens of steps, certificates, and potential rejection pitfalls. Our team handles the entire process for you — from build configuration to store approval.

Related Guides