expo-deployment
Install this skill
npx skills add expo/skillsWorks across Claude Code, Cursor, Codex, Copilot & Antigravity
The expo-deployment skill manages the lifecycle of React Native applications via Expo Application Services (EAS). It facilitates cloud-based binary builds for iOS and Android, handling complex signing, certificate management, and store submission processes. Instead of manually configuring local Xcode or Android Studio environments, this skill automates the packaging of production-ready binaries directly from the codebase. It also supports web-specific deployment workflows, enabling static exports and cloud hosting. By utilizing eas.json configuration profiles, developers can define environment-specific build behavior, versioning logic, and submission tracks. This skill bridges the gap between local development and end-user distribution by automating the transition from source code to App Store Connect and Google Play Console artifacts, ensuring consistent build outputs regardless of the local machine architecture.
When to Use This Skill
- β’Distributing beta builds to testers via TestFlight
- β’Automating production releases through CI/CD pipelines
- β’Generating public-facing preview URLs for pull requests
- β’Managing complex credentials and signing certificates remotely
How to Invoke This Skill
Example prompts that trigger this skill in Claude Code, Cursor, or Antigravity:
- βHelp me set up deployment for my Expo app
- βHow do I submit my Expo project to the App Store?
- βConfigure EAS build profiles for my project
- βHow to automate my Expo app release pipeline
- βBuild a production binary for Android using EAS
Pro Tips
- π‘Always use `eas.json` for managing build profiles and ensure environment variables are securely handled, avoiding hardcoded secrets.
- π‘Integrate EAS with your CI/CD system (e.g., GitHub Actions) to automate builds and submissions on every push to your main branch.
- π‘Utilize TestFlight extensively for iOS beta testing before final App Store submission to catch issues early and streamline the review process.
What this skill does
- β’Cloud-based binary builds for iOS and Android without local compilation
- β’Automated submission to App Store Connect and Google Play Console
- β’EAS Hosting for web app exports and preview deployments
- β’Declarative configuration of build environments using eas.json
- β’Integrated version number management for build increments
When not to use it
- βWhen building applications that require custom native code not supported by Expo's build service
- βWhen strictly limited to offline or on-premise infrastructure for security compliance
Example workflow
- Install and authenticate EAS CLI
- Run eas init to configure build profiles
- Update eas.json with production submission settings
- Trigger a cloud build with eas build --profile production
- Submit the resulting binary using --submit flag
Prerequisites
- βExpo project
- βEAS account
- βApple Developer Program membership
- βGoogle Play Console developer account
Pitfalls & limitations
- !Requires active subscription or valid usage limits for cloud builds
- !Misconfiguration of service account keys leads to submission failures
- !Automatic versioning conflicts if manual versioning logic is also present
FAQ
How it compares
Unlike manual builds which require local configuration of Xcode and Android Studio, this skill offloads the environment setup and signing process to managed cloud infrastructure.
π Full skill instructions β original source: expo/skills
This skill covers deploying Expo applications across all platforms using EAS (Expo Application Services).
## References
Consult these resources as needed:
- ./references/workflows.md -- CI/CD workflows for automated deployments and PR previews
- ./references/testflight.md -- Submitting iOS builds to TestFlight for beta testing
- ./references/app-store-metadata.md -- Managing App Store metadata and ASO optimization
- ./references/play-store.md -- Submitting Android builds to Google Play Store
- ./references/ios-app-store.md -- iOS App Store submission and review process
## Quick Start
### Install EAS CLI
npm install -g eas-cli
eas login### Initialize EAS
npx eas-cli@latest initThis creates
eas.json with build profiles.## Build Commands
### Production Builds
# iOS App Store build
npx eas-cli@latest build -p ios --profile production
# Android Play Store build
npx eas-cli@latest build -p android --profile production
# Both platforms
npx eas-cli@latest build --profile production### Submit to Stores
# iOS: Build and submit to App Store Connect
npx eas-cli@latest build -p ios --profile production --submit
# Android: Build and submit to Play Store
npx eas-cli@latest build -p android --profile production --submit
# Shortcut for iOS TestFlight
npx testflight## Web Deployment
Deploy web apps using EAS Hosting:
# Deploy to production
npx expo export -p web
npx eas-cli@latest deploy --prod
# Deploy PR preview
npx eas-cli@latest deploy## EAS Configuration
Standard
eas.json for production deployments:{
"cli": {
"version": ">= 16.0.1",
"appVersionSource": "remote"
},
"build": {
"production": {
"autoIncrement": true,
"ios": {
"resourceClass": "m-medium"
}
},
"development": {
"developmentClient": true,
"distribution": "internal"
}
},
"submit": {
"production": {
"ios": {
"appleId": "[email protected]",
"ascAppId": "1234567890"
},
"android": {
"serviceAccountKeyPath": "./google-service-account.json",
"track": "internal"
}
}
}
}## Platform-Specific Guides
### iOS
- Use
npx testflight for quick TestFlight submissions- Configure Apple credentials via
eas credentials- See ./reference/testflight.md for credential setup
- See ./reference/ios-app-store.md for App Store submission
### Android
- Set up Google Play Console service account
- Configure tracks: internal β closed β open β production
- See ./reference/play-store.md for detailed setup
### Web
- EAS Hosting provides preview URLs for PRs
- Production deploys to your custom domain
- See ./reference/workflows.md for CI/CD automation
## Automated Deployments
Use EAS Workflows for CI/CD:
# .eas/workflows/release.yml
name: Release
on:
push:
branches: [main]
jobs:
build-ios:
type: build
params:
platform: ios
profile: production
submit-ios:
type: submit
needs: [build-ios]
params:
platform: ios
profile: productionSee ./reference/workflows.md for more workflow examples.
## Version Management
EAS manages version numbers automatically with
appVersionSource: "remote":# Check current versions
eas build:version:get
# Manually set version
eas build:version:set -p ios --build-number 42## Monitoring
# List recent builds
eas build:list
# Check build status
eas build:view
# View submission status
eas submit:listHow to Use This Skill Unit
Option A: Project-Specific (Recommended)
- Click "Download" above
- In your project, create the directory:
.agent/skills/expo-deployment/ - Save the file as
SKILL.md - The agent will automatically discover the skill based on its description.
Option B: Global Installation (All Agents)
Save the file to these locations to make it available across all projects:
- Claude Code:
~/.claude/skills/expo/skills/expo-deployment/SKILL.md - Cursor:
~/.cursor/skills/expo/skills/expo-deployment/SKILL.md - Antigravity:
~/.gemini/antigravity/skills/expo/skills/expo-deployment/SKILL.md
π Install with CLI:npx skills add expo/skills