App Store Connect 与 TestFlight
创建 iOS 商店记录、上传构建、准备 TestFlight 和 App Review 材料
EAS Build 生成的是包,EAS Submit 负责上传。真正的 iOS 发布工作,还要在 App Store Connect 里完成。
App Store Connect 管三件事:商店里的 App 记录、TestFlight 测试、App Review 和正式发布。
你将学到
- 怎么在 App Store Connect 创建 app record,以及 Bundle ID 的关键注意点
- EAS Submit 上传构建的命令和流程
- TestFlight 需要测哪些路径
- 商店资料要准备哪些内容
- App Review 提交前的正确顺序
- EAS Update 和商店审核的边界
创建 app record
先确保你已经在 Apple Developer 注册了主 App ID。然后进入 App Store Connect:
https://appstoreconnect.apple.com/apps新建 App 常见字段:
| 字段 | 填什么 |
|---|---|
| Platforms | iOS |
| Name | 商店显示名 |
| Primary Language | 你的主语言 |
| Bundle ID | 选择 app.json 里的 expo.ios.bundleIdentifier |
| SKU | 内部编号,例如 yourapp-ios |
| User Access | 小团队可以先用 Full Access |
Bundle ID 一旦选错,后面构建上传和审核都会卡住。这里一定要和 products/01mvp/apps/mobile/app.json 对齐。
上传构建
先生成 production build,再提交到 App Store Connect:
vpr @01mvp/mobile#eas:build:productionvpr @01mvp/mobile#eas:submit:productionEAS Submit 会把构建上传到 App Store Connect。上传成功后,App 还没有公开发布,通常会先进入 TestFlight。
TestFlight 要测什么
TestFlight 不是走个形式。上线前至少用真机测这些路径:
- 邮箱登录、注册、退出登录
- OAuth 或 magic link 回跳
- 受保护 API 和用户资料
- 会员状态、RevenueCat entitlement
- 断网、弱网、API 失败时的 empty / error 状态
- 深链、推送、文件、相机等原生能力
- App 冷启动、后台切回来、卸载重装
如果审核员需要登录,提前准备测试账号。不要让审核员自己注册、充值或猜入口。
商店资料清单
| 资料 | 说明 | 常见坑 |
|---|---|---|
| 截图 | 按设备尺寸准备,展示真实核心功能 | 只放营销图,不展示 App 实际界面 |
| 隐私政策 | 说明收集哪些数据、用途、删除方式 | 文档写得和 App 实际行为不一致 |
| 隐私问卷 | App Store Connect 里填写数据收集情况 | 漏填分析、支付、账号相关数据 |
| 审核备注 | 告诉审核员怎么登录、怎么触发核心功能 | 不提供测试账号,付费功能也没有说明 |
| 付费说明 | 订阅、内购、退款和权益说明 | RevenueCat、商店产品和 App 文案不一致 |
截图文案和多语言怎么做
做商店截图时,先回答"用户为什么愿意下载",再考虑怎么把图做漂亮。对独立开发者来说,更稳的流程是:
- 先确定 3-5 个核心卖点,每个卖点尽量写成"动词 + 用户收益",例如
TRACK YOUR SPENDING、SAVE YOUR IDEAS、FIND THE RIGHT ROUTINE。 - 再从模拟器或真机里截真实 App 画面。优先选有内容、有状态、有结果的页面,少用登录页、设置页、空状态和过度装饰的营销图。
- 把每张真实截图和一个卖点配对。截图必须能证明这句文案,不要让文案讲 A、画面展示 B。
- 英文或主语言确认后,再做其它语言。翻译时要重新检查长度、换行和截图安全区,不要机械保留英文大写排版。
- 最后再按 App Store Connect 要求导出精确尺寸。上传前逐张确认:没有调试 UI、占位数据、低电量状态栏、错字、截断和不一致的主题。
如果你用 Claude Code,可以参考 claude-skill-aso-appstore-screenshots。它的有用点在于先分析项目卖点、评估模拟器截图,再用稳定脚手架把文案、设备框和真实截图组合起来,最后用图像模型做视觉增强。这样比纯提示词生成更容易保持尺寸、文案位置和多语言版本一致。
直接用 ChatGPT 图片生成也可以,但更适合做视觉风格探索、背景、设备框或单张候选图。不要让它脱离真实截图直接编最终商店图:模型可能改掉 UI、生成看似合理但 App 里不存在的功能,或者让多语言文案出现细小错字。更推荐的用法是把真实截图作为输入,让它做外层视觉增强,然后用脚本或设计工具裁切到商店要求的尺寸。
App Review 前的顺序
提交审核不是最后一步,前面还有几步要走:
先让 production build 跑通:确认构建来自正确的 EAS project、Apple team 和 Bundle ID。
再用 TestFlight 走完整流程:不要只打开首页,至少测登录、会员、核心业务、错误状态。
补齐商店资料:截图、隐私、分级、关键词、支持地址、审核备注都要完整。
提交 App Review:提交后继续关注 Apple 的问题和补充材料要求。
EAS Update 和审核
EAS Update 可以推 JS、样式、图片和文案层面的更新,但不代表可以绕过平台规则。这些变更不能只靠 OTA:
- 新增原生模块
- 修改权限
- 修改 Bundle ID、scheme、图标、启动页
- 改 App Store 付费产品和订阅逻辑
- 升级 Expo SDK 或 native dependency
影响 App 行为、付费、权限、隐私、安全的改动,仍然要按 Apple 的审核要求处理。
官方参考
下一步
iOS 这边搞定之后,继续了解 Android 与 Google Play 的发布流程。
想和其他创造者交流?
这篇文档有问题?