Tips and tricks
Deploying Your React Native App to iOS TestFlight
Posted on February 28 2026 / in React Native
1. Prerequisites
Before uploading your app to TestFlight, make sure your development environment is properly configured.
# Ensure you have Xcode installed and updated
xcode-select --install# Install EAS CLI (if using Expo / EAS Build)
npm install -g eas-cli
If you’re working with React Native CLI on macOS (as in a typical native setup), Xcode is mandatory for archiving and signing.
2. Apple Developer Setup
Apple Developer Program
- Enroll in the Apple Developer Program ($99/year)
https://developer.apple.com/programs/
App Store Connect Setup
- Create an App ID
- Create the app inside App Store Connect
- Create a Distribution provisioning profile
- Ensure certificates are valid
You’ll manage most of this inside:
https://appstoreconnect.apple.com
3. Build & Upload Options
You have three main ways to upload to TestFlight.
Option A: Using Xcode (Manual – Most Common)
This is the safest and most transparent approach.
# Open your iOS project
cd ios && open FoodPlanner.xcworkspace
In Xcode:
- Select “Any iOS Device (arm64)” as build target
- Go to Product → Archive
- After archive finishes:
- Open Window → Organizer
- Click Distribute App
- Select App Store Connect
- Choose Upload
Pros
- Full control over signing
- Clear UI for debugging issues
- Best for first-time setup
Cons
- Manual process
- Not ideal for CI/CD
Option B: Using Fastlane (Automated)
Best for CI/CD and repeatable deployments.
# Install Fastlane
brew install fastlane# Initialize in ios folder
cd ios
fastlane init# Upload to TestFlight
fastlane pilot upload
You can create a custom lane inside Fastfile:
lane :beta do
build_app(scheme: "FoodPlanner")
upload_to_testflight
end
Then run:
fastlane beta
Pros
- Fully automatable
- Ideal for CI pipelines (GitHub Actions, etc.)
- Cleaner versioning control
Cons
- Initial setup complexity
- Needs proper certificate handling
Option C: Command Line Build (Pure CLI)
This gives maximum control and is useful for scripting.
Step 1 – Archive
cd iosxcodebuild -workspace FoodPlanner.xcworkspace \
-scheme FoodPlanner \
-configuration Release \
-archivePath build/FoodPlanner.xcarchive \
archive
Step 2 – Export IPA
xcodebuild -exportArchive \
-archivePath build/FoodPlanner.xcarchive \
-exportPath build/export \
-exportOptionsPlist ExportOptions.plist
Step 3 – Upload IPA
xcrun altool --upload-app -f build/export/FoodPlanner.ipa \
-u "your@email.com" -p "@keychain:AC_PASSWORD"
Pros
- Scriptable
- No GUI required
- Good for advanced automation
Cons
- Harder debugging
- Requires correct ExportOptions.plist
4. App Store Connect Process
- Go to https://appstoreconnect.apple.com
- Create a new app (if not already created)
- After upload, the build appears under the TestFlight tab
- Add internal testers
- For external testers:
- Submit for beta review
- Approval typically takes 24–48 hours
Quick Checklist Before Upload
- Bundle ID matches App Store Connect
- Version and build number incremented
- Signing certificates valid
- Provisioning profile correct
- App icons added (all required sizes)
- Privacy usage descriptions added in
Info.plist - Push notifications configured (if used)
- Correct release configuration selected
Recent Comments
- admin on Disable Windows 11 Autoupdate
- Christina on Disable Windows 11 Autoupdate
- admin on Vimeo Thumbnail Generator
- Robert Moeck on Vimeo Thumbnail Generator
- Rainer on Vimeo Thumbnail Generator