How to Upload a Unity Game to TestFlight from Windows
TestFlight is how you get your Unity game onto real iPhones for testing. Here's the complete path from a Windows PC — including the parts most tutorials skip.
What you need before you start
- Unity 6 with the iOS Build Support module installed.
- A paid Apple Developer Program membership ($99/year) — required for TestFlight.
- An App Store Connect API key — a
.p8file plus Key ID and Issuer ID, with the App Manager role. - An app record in App Store Connect using your bundle ID.
Step 1 — Set your bundle identifier
In Unity, open Player Settings → Other Settings and set a unique reverse-DNS bundle identifier such as com.yourstudio.yourgame. Don't leave Unity's default com.DefaultCompany... — Apple rejects it. This value must match your App Store Connect app record exactly.
Step 2 — Create the app record in App Store Connect
Go to App Store Connect → Apps → + → New App, and register your bundle ID. Without this record, an upload has nowhere to land and fails after the build has already run.
Step 3 — Generate an App Store Connect API key
Under Users and Access → Integrations → App Store Connect API, generate a key with the App Manager role. Download the .p8 immediately — Apple lets you download it only once — and note the Key ID and Issuer ID. This key is what lets a machine upload on your behalf without your password.
Step 4 — Create your signing material
You need an iOS distribution certificate and a matching App Store provisioning profile for your bundle ID. Traditionally this means Xcode or the Apple Developer portal plus openssl. It can also be done entirely through the App Store Connect API from Windows, which is how automation tools avoid the Mac requirement.
Step 5 — Build, sign and archive
Unity exports the Xcode project on Windows, but the final compile and code-sign must run on macOS. This is the step that goes to a cloud machine — Unity Build Automation, a CI runner, or a tool that manages it for you.
Step 6 — Upload and wait for processing
The signed .ipa is uploaded to App Store Connect using your API key. After a few minutes of Apple-side processing the build appears in TestFlight, where you can add internal testers or a tester group.
Two things commonly bite here: your build number must be unique and higher than the last one for that version, and a first upload often shows "Missing Compliance" until you answer the encryption question.
The shortcut
MacFree compresses steps 4–6 into one button inside the Unity Editor. It creates the certificate and profile, runs the cloud build, signs, stamps a unique build number, and uploads to TestFlight — from Windows or Linux, with no Mac and no Xcode.
Get to TestFlight in three clicks
Connect your keys once, then build and ship from the Unity Editor on Windows.
Get MacFree on the Unity Asset Store →What do I need to submit a Unity game to TestFlight?
Pulling the requirements into one list, this is the complete set:
- A paid Apple Developer Program membership ($99/year).
- A unique bundle identifier set in Unity and registered with Apple.
- An app record in App Store Connect using that bundle ID.
- An App Store Connect API key (
.p8, App Manager role) or Apple ID credentials for the upload. - An iOS distribution certificate plus its private key.
- A matching App Store provisioning profile.
- A 1024×1024 opaque app icon — transparency causes rejection.
- A unique, increasing build number on every upload.
- An answer to the export compliance question after upload.
Notably, a Mac is not on that list — only the build machine needs macOS, and it can be in the cloud.
Frequently asked questions
What do I need to submit a Unity game to TestFlight?
You need a paid Apple Developer Program membership, a unique bundle identifier registered with Apple, an app record in App Store Connect, an App Store Connect API key, an iOS distribution certificate with its private key, a matching App Store provisioning profile, a 1024x1024 opaque app icon, and a unique increasing build number for each upload.
Can I upload a Unity game to TestFlight from Windows?
Yes. Unity exports the Xcode project on Windows, and the compile, code-sign and upload steps run on a cloud macOS machine. Tools such as MacFree or a CI service handle those steps, so you can reach TestFlight without owning a Mac.
How long does a TestFlight build take to process?
The cloud build typically takes 15–25 minutes for a small to medium Unity project. Apple's processing after upload usually adds a few minutes before the build is available to testers.
Do I need a paid Apple Developer account for TestFlight?
Yes. TestFlight distribution requires a paid Apple Developer Program membership ($99/year). This is an Apple requirement and cannot be bypassed by any third-party tool.