Development · Tip
Deploy an Expo App to TestFlight with EAS
Step-by-step workflow for deploying an Expo app to TestFlight using EAS.
A practical walkthrough demonstrating how to take an Expo React Native app from local code to Apple TestFlight in minutes. It covers generating configuration files, managing Apple developer credentials, and automating cloud builds and submissions via EAS.
How it works
Steps shown in the video:
1. EAS flow diagram: Build → Sign → Create App on App Store → Submit → Creates Test Group → Send Email Invite → Your phone. Triggered with `npx testflight`.
2. Requirements: Apple Developer Account (developer.apple.com) and Expo Account (expo.dev).
3. Running npx testflight in the project (daily-focus, app "one-thing"): it generates eas.json, links the local project to EAS, asks for iOS bundle identifier (e.g. dev.codewithbeto.dailyfocus), configures distribution certificate + provisioning profile, and offers to reuse/fetch Apple push keys.
4. It reuses the App Store Connect API key, assigns it to the project for EAS Submit, schedules the iOS submission, waits for the build, uploads the .ipa to App Store Connect (processing ~5–10 min), then build appears in TestFlight; TestFlight access is granted via email invites to testers.
Note: `npx testflight` appears to be the author's wrapper around EAS Submit (expo.dev/docs).
Demo app: a "OneThing" daily focus reminder app ("What's your ONE focus for today?").
What it's for
- Deploy an Expo or React Native app to Apple TestFlight for beta testing
- Automate iOS signing credentials and provisioning profiles without Xcode
- Configure EAS build and submit workflows from the terminal
Key points
- Overview of the full EAS deployment pipeline from build to tester invitation
- Prerequisites setup including Apple Developer and Expo accounts
- Automated generation of eas.json and project linking
- Apple distribution certificate and provisioning profile handling
- App Store Connect API key reuse and push notification credential setup
- Automated submission and processing tracking for TestFlight availability
Pricing
Free. Requires paid Apple Developer account ($99/year); Expo/EAS has free tiers
Details
- Type
- Tip
- Category
- Development
- Topic
- Mobile Deployment
- Platforms
- Command line, macOS, iOS
- For
- React Native and Expo mobile developers
- Alternative to
- Fastlane, Xcode Cloud
- Tags
- expo, react native, eas, testflight, ios, devops
Why it was saved
- @betomoedano: Shows the entire iOS TestFlight submission flow for an Expo/React Native app in one command and ~4 minutes, including credential setup and push notification keys.
Related
Starter kit for external web payments in native iOS apps.
Expo React Native starter template with Superwall payments and onboarding flows
Curated React Native animations and components reverse-engineered from popular apps
Open-source collection of advanced React Native UI animations and components
Generative UI framework rendering LLM JSON streams into predefined components safely
Deep-dive writeup and open-source release of the Apple Design Award–winning fitness tracker.
Updated