From expo
Builds and deploys Expo apps with EAS Build, covering eas.json profiles for development, preview, production; secrets, env vars, hooks, and multi-environment configs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/expo:expo-buildThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill when building and deploying Expo applications using EAS (Expo Application Services) Build.
Use this skill when building and deploying Expo applications using EAS (Expo Application Services) Build.
// eas.json
{
"cli": {
"version": ">= 5.9.0"
},
"build": {
"development": {
"developmentClient": true,
"distribution": "internal",
"ios": {
"simulator": true
}
},
"preview": {
"distribution": "internal"
},
"production": {
"autoIncrement": true
}
},
"submit": {
"production": {}
}
}
# Development build
eas build --profile development --platform ios
eas build --profile development --platform android
# Preview build
eas build --profile preview --platform all
# Production build
eas build --profile production --platform all
# Local build
eas build --profile production --platform ios --local
{
"build": {
"development": {
"developmentClient": true,
"distribution": "internal",
"env": {
"NODE_ENV": "development"
}
}
}
}
// eas.json
{
"build": {
"production": {
"env": {
"APP_ENV": "production",
"API_URL": "https://api.myapp.com"
}
},
"staging": {
"env": {
"APP_ENV": "staging",
"API_URL": "https://staging-api.myapp.com"
}
}
}
}
# Set secrets
eas secret:create --scope project --name API_KEY --value your_api_key
eas secret:create --scope project --name GOOGLE_SERVICES_JSON --value "$(cat google-services.json)" --type file
# List secrets
eas secret:list
# Use in eas.json
{
"build": {
"production": {
"env": {
"API_KEY": "$(EAS_SECRET_API_KEY)"
}
}
}
}
// eas.json
{
"build": {
"production": {
"autoIncrement": true,
"ios": {
"buildNumber": "1"
},
"android": {
"versionCode": 1
}
}
}
}
{
"build": {
"production": {
"prebuild": "npm run generate-assets",
"postbuild": "npm run cleanup"
}
}
}
// eas.json
{
"build": {
"development": {
"developmentClient": true,
"channel": "development",
"distribution": "internal"
},
"staging": {
"channel": "staging",
"distribution": "internal",
"ios": {
"bundleIdentifier": "com.myapp.staging"
},
"android": {
"package": "com.myapp.staging"
}
},
"production": {
"channel": "production",
"autoIncrement": true
}
}
}
{
"build": {
"production": {
"ios": {
"buildConfiguration": "Release"
},
"android": {
"gradleCommand": ":app:bundleRelease"
}
}
}
}
# iOS
eas submit --platform ios
# Android
eas submit --platform android
# Configure submission
# eas.json
{
"submit": {
"production": {
"ios": {
"appleId": "[email protected]",
"ascAppId": "1234567890",
"appleTeamId": "AB12CD34EF"
},
"android": {
"serviceAccountKeyPath": "./service-account.json",
"track": "production"
}
}
}
}
# View build status
eas build:list
# View specific build
eas build:view [build-id]
# Cancel build
eas build:cancel [build-id]
// Bad - Secrets in eas.json
{
"build": {
"production": {
"env": {
"API_KEY": "sk_live_1234567890"
}
}
}
}
// Good - Use EAS Secrets
eas secret:create --scope project --name API_KEY --value sk_live_1234567890
// Bad - Manual version management
{
"build": {
"production": {
"autoIncrement": false
}
}
}
// Good - Auto increment
{
"build": {
"production": {
"autoIncrement": true
}
}
}
npx claudepluginhub thebushidocollective/han --plugin expoDeploys Expo apps to iOS App Store, Android Play Store, TestFlight, and web hosting using EAS CLI. Guides builds, submissions, eas.json configs, and CI/CD workflows.
Deploys Expo apps to production via EAS Build, app store submission, and OTA updates. Use when publishing to iOS/Android or managing release channels.
Deploys Expo apps to production via app stores (iOS App Store, Google Play) and OTA updates. Guides builds, submissions, release channels, and optimization.