TestFlight Flow
How to distribute TheCompanyApp to beta testers via TestFlight.
Prerequisites
Apple Developer Account: Required (paid membership $99/year).
App Store Connect Access: Admin or App Manager role.
Xcode: Version 15.0+ with iOS 16.0+ SDK.
Build and Archive
Step 1: Update Version
File: TheCompanyApp.xcodeproj/project.pbxproj (via Xcode UI)
Select project in navigator
Select "TheCompanyApp" target
General tab → Identity
Version:
1.0.0(marketing version)Build:
1(increment for each upload)
Increment Build Number:
cd /Users/ehsanazish/Documents/Projects/TheCompanyApp
agvtool next-version -allStep 2: Configure Signing
Signing & Capabilities tab
Team: Select your development team
Bundle Identifier:
com.3nsofts.TheCompanyApp(must match App Store Connect)Signing Certificate: Apple Distribution
Provisioning Profile: App Store (automatic or manual)
Step 3: Select Device
Toolbar → Any iOS Device (arm64)
Step 4: Archive
Menu: Product → Archive
Wait: 5-10 minutes for build to complete.
Result: Archives window opens with new archive.
Upload to App Store Connect
Step 1: Validate
Select archive in Archives window
Click "Validate App"
Choose distribution certificate
Wait for validation (2-5 minutes)
Resolve any errors (see Troubleshooting below)
Step 2: Distribute
Click "Distribute App"
Select "App Store Connect"
Upload method: "Upload"
Distribution options:
✅ Include bitcode (if available)
✅ Upload symbols (for crash reports)
Review details
Click "Upload"
Upload Time: 5-20 minutes depending on file size and network.
Step 3: Processing
App Store Connect → My Apps → TheCompanyApp → TestFlight tab
Status: "Processing" (appears after upload completes)
Wait: 10-60 minutes for Apple to process build.
Notification: Email sent when build ready for testing.
Configure TestFlight
Step 1: Build Information
Select build in TestFlight tab
Add What to Test:
Add Test Details (optional):
Contact email
Marketing URL
Privacy policy URL
Step 2: Export Compliance
Question: "Does your app use encryption?"
Answer: Yes (HTTPS for CloudKit)
CCATS Required?: No (standard encryption only)
Submit: Saves compliance info.
Step 3: Internal Testing Group
Internal Testers: Up to 100 (must have App Store Connect access)
TestFlight → Internal Testing
Click "+" to create group
Name: "Internal Team"
Add testers by email
Select build to test
Enable automatic distribution (new builds auto-deploy)
Testers receive: Email invite immediately.
Step 4: External Testing Group (Optional)
External Testers: Up to 10,000 (public beta)
TestFlight → External Testing
Create group: "Public Beta"
Add build (requires App Review first time)
Submit for Beta App Review
Wait for approval (1-2 days)
Add testers via email or public link
Tester Experience
Tester Receives Invite
Email: "You're invited to test TheCompanyApp"
Steps:
Tap "View in TestFlight" button
Redirects to App Store → TestFlight app
If TestFlight not installed:
Install TestFlight (free)
Tap link again
Accept invite
Tap "Install"
Testing the App
TestFlight UI:
Build number and version displayed
"What to Test" instructions visible
"Send Feedback" button (shake device or screenshot)
Feedback Options:
Screenshot-based feedback
Crash reports (automatic)
Text feedback
Tester Sends Feedback
Shake Device:
Feedback UI appears
Select area of screenshot (optional)
Type feedback
Submit
Developer Receives:
Feedback in App Store Connect → TestFlight → Feedback
Includes: screenshot, text, device info, iOS version
Update Process
Releasing New Build
Fix bugs from tester feedback
Increment build number:
1→2Archive and upload (repeat steps above)
Wait for processing
Automatic distribution (if enabled) or manually select build
Testers notified: "New build available for TheCompanyApp"
Update:
Open TestFlight
Tap "Update"
New version installs
Version Update
New version (e.g., 1.0.0 → 1.1.0):
Update Version in Xcode
Reset Build to
1Create new "What to Test" notes
Upload as new version
Expiration
TestFlight Build Lifespan: 90 days from upload.
Expiration Warning: Testers notified 5 days before expiration.
Developer Action: Upload new build to extend testing.
Public Link (External Testing)
Generate Link:
External Testing group → Build → Enable Public Link
Copy link:
https://testflight.apple.com/join/ABC123XYZShare on website, social media, email
Anyone with link can:
Join TestFlight beta
Install app (no email invite needed)
Limited to 10,000 testers per build
Monitoring
App Store Connect → TheCompanyApp → TestFlight → Metrics
View:
Installs over time
Sessions per tester
Crashes per session
Feedback count
Crash Reports:
TestFlight → Crashes
View stack traces
Download .crash files
Symbolicate with dSYM
Transitioning to Production
When ready for App Store:
Archive new build (or use existing TestFlight build)
Distribute → App Store Connect
App Store Connect → App Store tab (not TestFlight)
Create new version
Fill in App Store metadata
Submit for App Review
Wait for approval (1-7 days)
Release to App Store
TestFlight continues: Can run TestFlight alongside production.
Related: Share Testing Checklist, Debugging Logs, Common Issues
Last updated