用途
当需要将 Expo 应用部署到生产环境时使用本技能。它覆盖通过 EAS(Expo Application Services)在各平台部署 Expo 应用,包括构建并提交到 iOS App Store、Google Play Store 和 TestFlight,配置 eas.json 的构建与提交配置,管理应用版本与构建号,发布 App Store 元数据与 ASO,以及通过 EAS 部署 Web 包和 API 路由。
主要能力
- 使用 EAS CLI 登录并初始化 EAS,生成带构建配置的 eas.json。
- 生产构建:iOS App Store 构建、Android Play Store 构建,或同时构建两个平台。
- 提交到商店:iOS 构建并提交至 App Store Connect、Android 构建并提交至 Play Store,以及使用 npx testflight 快捷提交 TestFlight。
- Web 部署:通过 EAS Hosting 部署 Web 应用,支持生产部署与 PR 预览。Expo Router API 路由会随 Web 包一起在 EAS Hosting 上部署(eas deploy 同时发布两者);若要编写或配置 API 路由本身,应使用 expo-api-routes 技能。
- 版本管理:配合 appVersionSource: "remote" 由 EAS 自动管理版本号,也可手动设置版本。
- 监控:查看近期构建、构建状态与提交状态。
使用方式
安装与初始化
npm install -g eas-cli
eas login
npx eas-cli@latest init
init 会创建带构建配置的 eas.json。
生产构建
# 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
提交到商店
# 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 部署
# Deploy to production
npx expo export -p web
npx eas-cli@latest deploy --prod
# Deploy PR preview
npx eas-cli@latest deploy
标准 eas.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": "your@email.com",
"ascAppId": "1234567890"
},
"android": {
"serviceAccountKeyPath": "./google-service-account.json",
"track": "internal"
}
}
}
}
平台相关说明
iOS:使用 npx testflight 快速提交 TestFlight;通过 eas credentials 配置 Apple 凭据;凭据设置见 ./references/testflight.md,App Store 提交见 ./references/ios-app-store.md。
Android:设置 Google Play Console 服务账号;配置发布轨道 internal → closed → open → production;详细设置见 ./references/play-store.md。
Web:EAS Hosting 为 PR 提供预览 URL,生产部署到自定义域名;CI/CD 自动化见 ./references/workflows.md。
自动化部署
EAS Workflows 可自动化 CI/CD 的构建 → 提交 → 更新 → 部署流水线,部署示例见 ./references/workflows.md。若要编写或校验工作流 YAML,应使用 expo-cicd-workflows 技能,它基于实时工作流 schema 工作。
版本管理
EAS 在 appVersionSource: "remote" 下自动管理版本号:
# Check current versions
eas build:version:get
# Manually set version
eas build:version:set -p ios --build-number 42
监控
# List recent builds
eas build:list
# Check build status
eas build:view
# View submission status
eas submit:list
参考资源
按需查阅:
- ./references/workflows.md —— 自动化部署与 PR 预览的 CI/CD 工作流
- ./references/testflight.md —— 将 iOS 构建提交到 TestFlight 进行 Beta 测试
- ./references/app-store-metadata.md —— 管理 App Store 元数据与 ASO 优化
- ./references/play-store.md —— 将 Android 构建提交到 Google Play Store
- ./references/ios-app-store.md —— iOS App Store 提交与审核流程
适用场景
需要将 Expo 应用发布到 iOS App Store、Google Play Store、TestFlight,配置构建与提交配置,管理版本号,发布商店元数据与 ASO,或部署 Web 包和 API 路由时使用。
限制
仅当任务明确匹配其上游产品或 API 范围时使用本技能。在做出更改前,应依据当前官方文档核实命令、API 行为、定价、配额、凭据与部署效果。生成的示例不能替代针对具体环境的测试、安全审查,以及对破坏性或高成本操作的用户批准。