如何把Expo应用提交到App Store:Expo Skills的EAS构建与TestFlight/Play发布全流程
【免费下载链接】skillsA collection of AI agent skills for working with Expo projects and Expo Application Services项目地址: https://gitcode.com/gh_mirrors/skills9/skills
Expo Skills 是 Expo 官方出品的 AI 智能体技能合集,其中eas-app-stores技能专门覆盖 EAS 构建与上架:从一条命令完成 iOS TestFlight 提交、App Store 正式提审,到 Android Google Play 分渠道发布,帮助新手少踩签名、版本号、元数据等常见坑。本文按"装技能 → 构建 → 提审 → 自动化"的顺序,带你走完 Expo 应用上架的完整流程。
一、先搞懂:EAS 构建为什么能简化上架
把原生应用送上架,传统流程要手动管理分发证书、描述文件、App Store Connect API 密钥,还要处理 90 天后过期的 TestFlight 构建。EAS(Expo Application Services)把这条链路收敛成三步:
| 步骤 | 你做什么 | EAS 代劳什么 |
|---|---|---|
| ① 构建 | 指定production构建配置 | 云端打包、自动签名、递增构建号 |
| ② 提交 | 指定提交配置 | 上传到 App Store Connect / Play Console |
| ③ 发布 | 在商店后台点击"提审" | 版本号管理、状态回查 |
⚠️ 注意:EAS 是付费服务,云构建消耗 EAS 套餐资源;Apple Developer 与 Google Play 开发者账号需另行注册。
eas-app-stores技能的说明中明确标注了这一点,详见 eas-app-stores/SKILL.md。
二、准备步骤:为 AI 助手装上 Expo Skills
如果你的 AI 编程助手(Claude Code、Codex、Cursor 等)已安装 Expo 官方插件,它会自动加载对应技能,按你的任务路由到正确的知识。安装只需一条命令(详见仓库说明 README.md):
npx skills@latest add expo/skills --skill '*'装好后直接对 AI 说"帮我把这个 Expo 应用提交到 TestFlight"即可——它会读取 eas-app-stores/SKILL.md 中的完整流程,包括首次配置凭据时该跑eas credentials -p ios这类关键细节。
三、最快路径:一条命令出 TestFlight 内测版
iOS 内测是最快验证"上架通路是否打通"的方式。Expo 项目里甚至提供了专用快捷命令:
# 登录并初始化 EAS 项目 eas login npx eas-cli@latest init # iOS:构建 + 自动提交到 TestFlight / App Store Connect npx eas-cli@latest build -p ios --profile production --auto-submit # Expo / React Native 项目的 TestFlight 快捷方式 npx testflight构建成功 ≠ 已可安装。上架状态有明确的分层,别只看"命令返回成功":
| 已验证状态 | 实际含义 | 下一步检查 |
|---|---|---|
| EAS 构建完成 | 产物已生成 | 核对构建 ID 与源码版本 |
| 提交已排队 | EAS 已安排上传 | 跟踪返回的提交链接与日志 |
| Apple 处理成功 | 二进制被接受 | 查看 TestFlight 可用性与合规项 |
| 构建已分配给测试组 | 测试者可安装 | 真机装包验证 |
完整的状态追踪与常见故障对照表(协议过期、图标含 alpha 通道、构建号重复等)见 references/testflight.md。
四、iOS App Store 正式提审清单
TestFlight 跑通后,正式上架还需要在 App Store Connect 补齐四组信息(首次提审前必做):
- 应用信息:主语言、Bundle ID(必须与构建产物一致)、SKU
- 定价与可用地区
- App 隐私:隐私政策链接、数据收集声明
- 审核信息:联系方式、演示账号(如需要登录)
几个新手最容易卡住的点,官方参考文档都给了对症方案(见 references/ios-app-store.md):
- "The bundle version must be higher":检查归档内的实际
CFBundleVersion,而不是只看 EAS 的远程计数器; - "Missing compliance information":未用加密的 App 可在
app.json中声明usesNonExemptEncryption: false; - 构建卡在"处理中":App Store Connect 处理通常需 5–30 分钟,属正常现象。
常见拒审原因速查:崩溃/bug、元数据缺失、占位内容(lorem ipsum)、缺少演示账号、没有隐私政策链接。提审前用 TestFlight 多轮内测 + 外部测试(外部测试者上限 1 万,需过 beta 审核)可大幅降低返工。
发布时机有三种可选:审批后自动发布、手动发布、指定日期自动发布(仍需审批)。大版本建议用分阶段发布:第 1 天 1% → 第 7 天 100%,出问题可及时刹车。
五、Android:Google Play 分轨道发布
Android 侧的思路略有不同:Play 用"轨道(track)"做灰度,首次提交会自动落到内部测试轨道。
# 构建并提交(默认走 eas.json 中配置的 track) npx eas-cli@latest build -p android --profile production --auto-submit| 轨道 | 用途 |
|---|---|
internal | 内部测试(最多 100 人) |
alpha | 封闭测试 |
beta | 开放测试 |
production | 正式发布 |
两点新手必读:
- 服务账号:自动化提交需在 Google Cloud 创建服务账号并授予 "Release to production" 权限,密钥文件务必加入
.gitignore; - 必须用 AAB:Play 商店对新应用要求
buildType: "app-bundle",提交 APK 会直接被拒。
生产环境可配置inProgress+rollout: 0.1实现 10% 灰度,再逐步放量。首次提交前的完整检查清单(内容声明、内容分级问卷、定价设置等)见 references/play-store.md。
六、进阶:用 EAS Workflows 让上架全自动
版本发布不该依赖手动敲命令。EAS Workflows 用 YAML 描述"构建 → 提交"流水线,比如监听v*标签,同时构建并提交 iOS 与 Android:
on: push: tags: ['v*'] jobs: build-ios: type: build params: platform: ios profile: production submit-ios: type: submit needs: [build-ios] params: platform: ios profile: production更多示例(PR 预览更新、条件任务)见 references/workflows.md,仓库内还有配套的 eas-workflows 技能 可以基于实时 schema 帮你校验 YAML。
七、版本号与商店元数据:两个"隐形"开关
版本号:在eas.json中开启appVersionSource: "remote"+autoIncrement: true后,EAS 会在云端自动递增构建号,本地完全不用手动改:
eas build:version:get # 查看当前版本 eas build:list # 查看最近构建元数据:App Store 的名称、关键词、描述、截图等,可以用store.config.json文件化管理(eas metadata:pull拉取、eas metadata:push推送),内置校验能提前抓出常见拒审项,并附带 ASO 关键词优化清单,详见 references/app-store-metadata.md。
八、写在最后
把 Expo 应用送上架并不神秘:EAS 负责构建与签名,TestFlight/Play 内测轨道负责灰度验证,商店后台负责最终审批。装好 Expo Skills 后,你可以把这些步骤直接交给 AI 助手执行与排错,把精力花在应用本身。建议路径:eas init→ TestFlight 内测 → 补齐商店四组信息 → 提审 → 用 EAS Workflows 固定成 CI 流程。🚀
【免费下载链接】skillsA collection of AI agent skills for working with Expo projects and Expo Application Services项目地址: https://gitcode.com/gh_mirrors/skills9/skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考