news 2026/10/4 6:40:17

如何把Expo应用提交到App Store:Expo Skills的EAS构建与TestFlight/Play发布全流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何把Expo应用提交到App Store:Expo Skills的EAS构建与TestFlight/Play发布全流程

如何把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 补齐四组信息(首次提审前必做):

  1. 应用信息:主语言、Bundle ID(必须与构建产物一致)、SKU
  2. 定价与可用地区
  3. App 隐私:隐私政策链接、数据收集声明
  4. 审核信息:联系方式、演示账号(如需要登录)

几个新手最容易卡住的点,官方参考文档都给了对症方案(见 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/4 6:35:38

Abaqus结构有限元分析全流程:从模型简化到结果验收

做结构有限元分析这行的朋友,多半都在某个深夜对着 Abaqus 的报错框怀疑过人生。我见过太多人花了半小时照着教程点出一个应力云图,换到自己的工程问题上却寸步难行。原因不是 Abaqus 难学,而是多数教程只教了“点击顺序”,没讲清…

作者头像 李华
网站建设 2026/10/4 6:34:27

Scan Chain实战解析:从原理到流片的DFT关键路径

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 6:32:53

插件激活失败怎么办:透过报错理解插件系统与排查方法

项目部署的时候,终端里突然冒出一行failed to load plugins web boot: 2 entries did not activate linxin666/dsh-p。第一次见到这种报错的人,多半会以为自己哪里配置错了,然后在网上搜 plugins,搜半天也搜不到一个明确答案。作为…

作者头像 李华
网站建设 2026/10/4 6:32:41

C++面向对象实战:从继承多态到智能指针的战斗系统设计

这篇大作业做到第三部,题目叫“开战”,说实话看到这个标题我先是松了口气,因为前两步的地图和资源系统已经基本定下来了;接着又捏了把汗,因为战争系统是整个大作业里最容易暴露设计问题的环节,也是一道“类…

作者头像 李华
网站建设 2026/10/4 6:28:29

小吃培训合同怎么看:长沙曾食坊小吃培训走访提示

本篇要点:合同先看课时与品类是否写清;费用与材料条款逐条确认;退费调整要落进书面约定。搜"培训合同怎么看"的人,多半是担心签完才发现权责不清。合同本身不是用来规避什么,而是把双方说好的内容固定下来。…

作者头像 李华
网站建设 2026/10/4 6:25:36

做纸袋热封,你踩过胶的哪些坑?

在纸袋热封的过程中、存在一些常见的问题可能会影响到最终的封口质量和生产效率。胶水选择不当往往是一个主要的“坑”胶水、以确保密封强度。另外、热封温度等设定也重要,过高或过低都会导致封口不牢或材料损坏。在操作技巧方面、无经验的操作人员可能会犯一些失误…

作者头像 李华