# 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 is 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](https://xiry.app/topics/development.md)
- 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, 15 January 2026](https://x.com/betomoedano/status/2011903741054820637): 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

- [iOS Web Payments Starter Kit](https://xiry.app/resources/ios-web-payments-starter-kit): Starter kit for external web payments in native iOS apps. (GitHub repo, Open source)
- [jackfriks/expo-app-boilerplate](https://xiry.app/resources/jackfriks-expo-app-boilerplate): Expo React Native starter template with Superwall payments and onboarding flows (GitHub repo, Free)
- [Make It Animated](https://xiry.app/resources/make-it-animated): Curated React Native animations and components reverse-engineered from popular apps (Website, Paid)
- [my-react-native-playground](https://xiry.app/resources/my-react-native-playground): Open-source collection of advanced React Native UI animations and components (GitHub repo, Open source)
- [json-render](https://xiry.app/resources/json-render): Generative UI framework rendering LLM JSON streams into predefined components safely (Web app, Open source)
- [Any Distance Goes Open Source](https://xiry.app/resources/any-distance-goes-open-source): Deep-dive writeup and open-source release of the Apple Design Award–winning fitness tracker. (Article or course, Free)

Updated 11 October 2026. Page: https://xiry.app/resources/deploy-an-expo-app-to-testflight-with-eas

Make your own library: Xiry takes your saved reels, tweets, Reddit bookmarks and Watch Later videos, makes them searchable and pulls the useful stuff out, like this library. It's invite-only for now; join the waitlist at https://xiry.app/#waitlist.
