TestFlight Beta Release
Build and upload the iOS app to TestFlight for beta testing.
Pre-flight Checks
- •Fastlane installed: !
fastlane --version 2>/dev/null | grep "fastlane " | head -1 || echo "✗ Not installed - run: brew install fastlane" - •Fastfile exists: !
ls fastlane/Fastfile 2>/dev/null && echo "✓ Found" || echo "✗ Not found - run /setup-fastlane first" - •App-specific password: !
[ -n "$FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD" ] && echo "✓ Set" || echo "⚠️ Not set - export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD='xxxx-xxxx-xxxx-xxxx'"
Arguments: ${ARGUMENTS:-none}
What This Does
- •Syncs certificates via Match (appstore type)
- •Increments build number (unless
--skip-build-increment) - •Builds release archive with gym
- •Uploads to TestFlight via pilot
- •Optionally distributes to external testers (if
--external)
Commands
Standard Beta (Internal Testers)
bash
cd project/product/swiftui-ios-app # or your fastlane directory fastlane beta
Skip Build Number Increment
bash
fastlane beta skip_build_increment:true
External Testers (with changelog)
bash
fastlane beta_external changelog:"Bug fixes and performance improvements"
Troubleshooting
"No value found for 'username'"
Set your Apple ID in fastlane/Appfile:
ruby
apple_id("your@email.com")
"Please sign in with an app-specific password"
- •Go to https://account.apple.com → Sign-In & Security → App-Specific Passwords
- •Generate a password named "Fastlane"
- •Export it:
bash
export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD='xxxx-xxxx-xxxx-xxxx'
rsync error during export
If you see --extended-attributes: unknown option, Homebrew rsync conflicts with Xcode:
bash
brew uninstall rsync # Use system rsync
After Upload
- •Build will appear in TestFlight within 1-5 minutes
- •Internal testers are notified automatically
- •External testers require
beta_externallane or manual distribution in App Store Connect