Mastering App Store Connect & TestFlight
The technical submission process is often as tricky as the review itself. From configuring Bundle IDs to managing beta testers, this guide covers the essential technical steps to prepare your binary for a successful launch.
1 Setting Up the App Record
Before you can even open Xcode, you must create the "shell" for your app in App Store Connect. This reserves your app name.
Bundle ID Match
The Bundle ID in Connect must match the "Bundle Identifier" in your Xcode project settings exactly (e.g., com.yourcompany.appname).
SKU (Stock Keeping Unit)
This is a unique ID for your internal tracking (like an inventory number). It is not visible to users on the App Store.
Primary Language
Choose carefully. If you set this to English, you can add Spanish later, but changing the "Primary" language (which is the default for unlocalized regions) is a complex process.
2 Uploading the Binary
You cannot upload your app code through the web browser. You must use Apple's developer tools.
Method A: Xcode (Standard)
1. Select "Generic iOS Device" as target.
2. Go to Product > Archive.
3. When the Organizer opens, click "Distribute App".
Method B: Transporter
A standalone macOS app. Good if your internet is unstable or if you are uploading a .ipa file generated by a CI/CD pipeline.
3 TestFlight Strategy
TestFlight is your beta testing environment. It helps you catch bugs before the reviewer does.
Internal Testing
- Audience: Your team (Admins, Developers).
- Speed: Builds are available almost immediately after processing.
- Limit: Up to 100 users.
External Testing
- Audience: Public beta testers via email or public link.
- Review: Requires Beta App Review. This is a "mini-review" (usually 24 hours).
- Pro Tip: Passing Beta Review often makes the final App Store review faster.
4 Submission Prep
The "Export Compliance" Question
When you submit, Apple will ask: "Does your app use encryption?"
Yes: If you use HTTPS calls (which almost everyone does). You usually qualify for the "Standard Encryption" exemption.
No: Only if your app is completely local and uses no networking.
Tip: Add the key ITSAppUsesNonExemptEncryption set to NO in your Info.plist to skip this dialog if you qualify.
5 Release Options
Manual Release
Best for Marketing. You get approved, but the app waits. You click "Release" when your press release goes live.
Automatic Release
Best for Bug Fixes. The app goes live the moment Apple approves it. Risky if you aren't monitoring.
Phased Release
Pro Move. Releases the update to 1% of users on Day 1, 2% on Day 2, etc. If a crash is found, you can pause it before everyone updates.