expo-deployment — Codex skill: what it does, how to install
Guides deployment of Expo applications to the iOS App Store, Google Play Store, and EAS Hosting using EAS CLI.
npx skills add openai/plugins --skill expo-deployment -a codexWhat expo-deployment does
This skill guides agents through deploying React Native apps with Expo Application Services (EAS). It provides CLI patterns and profiles for building production artifacts, submitting binaries to store tracks, and configuring eas.json. For iOS beta releases, it documents the npx testflight shortcut alongside standard App Store Connect submissions.
The skill covers web deployments via npx expo export -p web and CI/CD pipelines defined in .eas/workflows/release.yml. It also details remote version tracking with appVersionSource: "remote", letting you inspect and set build numbers directly through EAS commands.
Running builds requires an active Expo account and globally installed eas-cli. Store submissions will fail without proper credentials: an Apple ID with ascAppId for iOS, or a Google Play service account key file for Android.
What it helps with
- Build production binaries for iOS and Android via EAS
- Submit iOS test builds directly to TestFlight
- Generate standard
eas.jsonprofiles for production and internal distribution - Deploy web versions with PR preview URLs on EAS Hosting
Example prompts for the agent
- Help me set up
eas.jsonfor production builds with remote versioning. - How do I submit an Android build to the internal track in Google Play?
- Write an EAS workflow file to build and submit iOS on push to main.
How to install expo-deployment
1Skills CLI (Vercel)
npx skills add openai/plugins --skill expo-deployment -a codex2Manually: put the files in place
.agents/skills/expo-deployment/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add openai/plugins --skill expo-deployment -a claude-code2Manually: put the files in place
~/.claude/skills/expo-deployment/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/expo-deployment/
Manually: put the files in place
.cursor/skills/expo-deployment/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install openai/plugins expo-deployment2Manually: put the files in place
.github/skills/expo-deployment/SKILL.mdPlatform CLI
gemini skills install https://github.com/openai/plugins --path plugins/expo/skills/expo-deploymentManually: put the files in place
.devin/skills/expo-deployment/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: Codex skills: how to install, where they live, how to call them
Questions about expo-deployment
How do I install expo-deployment in Codex?
Run npx skills add openai/plugins --skill expo-deployment in your project terminal.
What does the expo-deployment skill do?
It gives the agent instructions and EAS CLI workflows to build, version, and submit Expo apps to app stores and web hosting.
What credentials are required for automated store submission?
You need Apple credentials configured in EAS or specified in eas.json, plus a Google Play Console service account JSON file for Android.
Source text
SKILL.md · MIT
---
name: expo-deployment
description: Deploying Expo apps to iOS App Store, Android Play Store, web hosting, and API routes
version: 1.0.0
license: MIT
---
# Deployment
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
```bash
npm install -g eas-cli
eas login
```
### Initialize EAS
```bash
npx eas-cli@latest init
```
This creates `eas.json` with build profiles.
## Build Commands
### Production Builds
```bash
# 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
```bash
# 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:
```bash
# 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:
```json
{
"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:
```yaml
# .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: production
```
See ./reference/workflows.md for more workflow examples.
## Version Management
EAS manages version numbers automatically with `appVersionSource: "remote"`:
```bash
# Check current versions
eas build:version:get
# Manually set version
eas build:version:set -p ios --build-number 42
```
## Monitoring
```bash
# List recent builds
eas build:list
# Check build status
eas build:view
# View submission status
eas submit:list
```
© Expo Team · MIT · openai/plugins