mcpField
E
eas-app-stores

eas-app-stores

github.com/expo云与 DevOps3.5k23.8k 次安装今天更新
代码仓库

关于 eas-app-stores

eas-app-stores 是一项 Expo 技能,指导开发者使用 EAS 构建并发布 iOS 和 Android 应用。内容涵盖 Expo/React Native 项目及现有原生应用的商店提交、测试和发布状态检查。

主要功能

  1. 01EAS 构建与商店提交指南
  2. 02Expo/React Native 发布步骤
  3. 03原生 iOS 配置与归档检查
  4. 04TestFlight 和商店提交参考
  5. 05自动发布工作流指南
  6. 06版本与构建状态检查

适用场景

  1. 01准备 iOS 和 Android 商店构建
  2. 02将 iOS 构建提交至 TestFlight
  3. 03使用 EAS 发布原生 Swift 应用
  4. 04检查构建和提交进度

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/expo/skills --skill eas-app-stores

安装后在 Claude Code 中输入/eas-app-stores确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
app-store-metadata.md
ios-app-store.md
native-ios.md
play-store.md
testflight.md
workflows.md

详细介绍

App Store 部署

EAS 服务需付费。 云端构建会占用 EAS 计划资源,且 EAS 服务有免费层和付费计划的使用限额。Apple Developer 和 Google Play 会员资格需另行购买。请访问 https://expo.dev/pricing 查看所需服务的价格。

此技能介绍如何使用 EAS 构建和发布 iOS 与 Android 应用:包括 Expo 和其他 React Native 项目,以及现有原生应用。EAS 是交付服务;原生应用无需在运行时引入 Expo 或 React Native,也可使用该服务。目前,原生应用设置指南涵盖 iOS 上的 SwiftUI/UIKit。

选择项目路径

  • 不含 React Native 运行时的 SwiftUI/UIKit 应用: 更改其构建配置前,请先阅读 references/native-ios.md。以 Xcode 项目和 Swift 代码作为应用的唯一事实来源。下方的 Expo/React Native 快速入门和开发客户端示例不适用于此路径。
  • 不含 React Native 运行时的原生 Android 应用: 保留现有的原生构建设置。提交说明请参阅 references/play-store.md;Swift/iOS 设置说明不适用。目前尚未提供专门的原生 Android 设置指南。
  • Expo/React Native 应用: 使用下方的快速入门,然后参阅相关商店指南。
  • 在现有原生应用中添加 React Native 屏幕: 使用 expo-brownfield 完成集成;之后回到此处进行分发。

在原生 iOS 初次设置时、更改版本号、包 ID 或图标后,或排查上传被拒的问题时,请按照 references/native-ios.md 中的归档和图标检查步骤操作。常规发布请遵循 EAS 构建/提交流程,以及 references/testflight.md 中的处理和可用性检查。EAS 构建成功或提交进入队列,并不代表已获 Apple 接受、测试人员已获得访问权限,或应用已在 App Store 发布。

参考资料

请按需查阅以下资源:

  • ./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 提交和审核流程
  • ./references/native-ios.md -- 无需 Expo 运行时的原生 Swift/SwiftUI/UIKit 设置、版本管理和归档验证

Expo / React Native 快速入门

安装 EAS CLI
npm install -g eas-cli
eas login
初始化 EAS
npx eas-cli@latest init

eas init 会关联或创建 EAS 项目。运行 eas build:configure 可在 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 --auto-submit

# Android: Build and submit to Play Store
npx eas-cli@latest build -p android --profile production --auto-submit

# Expo / React Native shortcut for iOS TestFlight
npx testflight

Web 和 API 路由托管

将 Expo 网站或 Expo Router API 路由部署到 EAS Hosting(先运行 npx expo export -p web,然后运行 eas deploy)的内容由 eas-hosting 技能介绍。本技能侧重于原生应用商店发布。

EAS 配置

适用于 Expo / React Native 项目的示例(原生 Swift 配置见 references/native-ios.md):

{
  "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"
      }
    }
  }
}

平台专属指南

iOS
  • 对于原生 Swift 应用,请使用 references/native-ios.md 中明确的构建/提交流程
  • 对于 Expo / React Native 应用,npx testflight 可快速完成 TestFlight 流程
  • 使用 eas credentials 配置 Apple 凭据
  • 凭据设置请参阅 ./references/testflight.md
  • App Store 提交请参阅 ./references/ios-app-store.md
Android
  • 设置 Google Play Console 服务账号
  • 配置轨道:内部 → 封闭 → 开放 → 生产
  • 详细设置请参阅 ./references/play-store.md

自动化发布

EAS Workflows 可自动执行构建 → 提交 → 更新流程,用于 CI/CD。商店发布示例请参阅 ./references/workflows.md。要编写或验证工作流 YAML,请使用 eas-workflows skill——它基于实时工作流架构运行。

版本管理

使用 appVersionSource: "remote" 时,EAS 会自动管理版本号:

# Check current versions
eas build:version:get

# Manually set version
eas build:version:set -p ios

设置版本的命令会提示输入相应值。设置或更改 iOS 原生版本管理,或排查构建号重复问题时,请检查已归档的 CFBundleVersion:远程计数器本身并不能证明 Xcode 使用了该值。

监控

# List recent builds
eas build:list

# Check build status
eas build:view BUILD_ID

# Inspect submissions (verified with EAS CLI 23.2.0)
eas submit:list -p ios --json
eas submit:view SUBMISSION_ID --json

在判断命令缺失问题前,请检查 CLI 版本:这些提交命令在 23.2.0 中可用,但在经过测试的 18.6.0 安装版本中不可用。使用固定版本的 npx [email protected] 调用这些命令,无需更改全局安装。有关实时 Apple 状态和重试指南,请参阅 references/testflight.md。如果 JSON 结果未包含底层错误,请根据返回的日志 URL 查看详情。请报告确切的构建 ID/版本,以及经核实的最远发布状态。

提交反馈

如果你遇到错误、误导性信息或此 skill 中的信息已过时,请报告,以便 Expo 改进:

npx --yes @expo/agent-cli@latest feedback --category skills --subject "eas-app-stores" "<actionable feedback>"

只有在有具体且可执行的反馈时才提交。请尽可能提供相关背景。 如果 Agent 反复无法完成 Expo 任务,或用户不得不介入,请使用 --category evals,并将相关 Expo 软件包或命令指定为 --subject,简要报告任务、预期结果和出错之处。

评论

支持 Markdown