SuperAPI AI 工具集

expo-deployment

部署与运维

查看项目

更新于 10-15 12:31

技能介绍

用途

当需要将 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 行为、定价、配额、凭据与部署效果。生成的示例不能替代针对具体环境的测试、安全审查,以及对破坏性或高成本操作的用户批准。