expo-deployment

Deploy Expo apps to app stores, TestFlight, and web using EAS Build and EAS Hosting.

1|1|Updated Jul 6, 2026
One-click install
npx skills add https://github.com/muhammaddadu/ai-skill-collection --skill expo-deployment-muhammaddadu
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: expo-deployment
Source: https://github.com/muhammaddadu/ai-skill-collection/tree/main/3-delivery/expo-deployment
Command: npx skills add https://github.com/muhammaddadu/ai-skill-collection --skill expo-deployment-muhammaddadu

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires eas-cli, and includes references (resource) components.

What problem does it solve? Shipping an Expo app involves juggling EAS build profiles, store credentials, TestFlight submissions, web deploys, and OTA update monitoring. This Skill consolidates the commands, configurations, and platform-specific guides needed to release and operate Expo apps without hunting through documentation. ## Core Features & Use Cases - Store Submission: Build and submit iOS and Android production binaries to the App Store and Google Play with eas build and eas submit, including credential and service account setup. - TestFlight & Dev Clients: Distribute beta builds via npx testflight and create development clients for testing custom native code on physical devices. - Web & API Hosting: Deploy Expo Router web apps and +api.ts API routes to EAS Hosting (Cloudflare Workers runtime) with PR previews. - OTA Update Monitoring: Query crash rates, adoption, and embedded-vs-OTA user splits with eas update:insights and eas channel:insights. - Use Case: After merging a release branch, run a production build for both platforms, submit to TestFlight and the Play internal track, then monitor the OTA rollout's crash rate before promoting to production. ## Quick Start Ask the assistant to build and submit your Expo app to TestFlight using EAS with a production profile.

Frequently Asked Questions about expo-deployment

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I submit an Expo app to TestFlight?▼

Run `npx testflight` to build and submit to TestFlight in one command. Set EXPO_APPLE_ID and EXPO_APPLE_TEAM_ID environment variables to skip prompts, and enable autoIncrement in eas.json to avoid build number conflicts.

How to build and submit an Expo app to the App Store and Google Play?▼

Run `eas build -p ios --profile production --submit` for iOS or the Android equivalent for Play Store. Configure submit credentials in eas.json: an App Store Connect API key for iOS and a Google service account JSON key for Android.

When do I need an Expo development client instead of Expo Go?▼

You need a dev client only when using custom native code, local Expo modules, Apple targets like widgets, or third-party native modules not bundled in Expo Go. Try `npx expo start` with Expo Go first; build a dev client with `eas build --profile development` only if that fails.

Can Expo Router API routes run on EAS Hosting?▼

Yes, `+api.ts` routes deploy to EAS Hosting via `eas deploy` and run on the Cloudflare Workers runtime. Node.js APIs like fs are unavailable, so use Web APIs and cloud databases such as Turso, Neon, or Supabase.

How do I check if an EAS Update is crashing?▼

Run `eas update:insights <groupId>` to see per-platform installs, failed installs, and crashRatePercent, or `eas channel:insights` for embedded-vs-OTA user splits. Find the group ID first with `eas update:list --branch production --json --non-interactive`.

Why does my Android submission fail with version code already used?▼

Google Play requires each upload to have a higher versionCode. Set `autoIncrement: true` and `appVersionSource: "remote"` in eas.json so EAS manages version codes automatically for every build.