从 Beta 到正式上架:提交 App Store Review
从 Beta 测试到 App Store 上架的最后一步
TestFlight 的终点就是 App Store 正式上架。跑完几轮内部 + 外部测试、崩溃率和反馈都清理到满意之后,你要做的就是从 TestFlight 里挑一个构建版本提交正式 App Review。
提交正式 App Review 之前的自检
在 App Store Connect → TestFlight → Builds 面板里,检查你要提交的那个构建:
- ✅ 这个构建是 TestFlight 里崩溃率最低的构建(或者你修了这个构建里所有已知崩溃、即将发布它的改进版)
- ✅ 所有外部测试者反馈里的「阻塞性问题」都已经修复
- ✅ 版本号(CFBundleShortVersionString)比 App Store 已上架的版本号更高(重要!App Store 不允许提交比现有版本更低或相同的版本号)
- ✅ 构建号(CFBundleVersion)是全局唯一的(你上传过的所有构建里不能重复)
- ✅ 加密合规自声明正确填了
- ✅ 截图、App 描述、隐私清单等 App Store 元信息都填好了
提交正式 App Review
- App Store Connect → 选 App → App Information 标签页。
- 选要发布的平台(iOS / macOS / tvOS / visionOS / watchOS)。
- 在构建版本下拉列表里,从 TestFlight 里选一个构建——App Store Connect 会自动列出所有曾经上传过的构建版本。
- 选中你在 TestFlight 里测完的那个构建 → 保存。
- 回到 App 详情页 → 提交 App Review。
- 填审核信息(测试账号、硬件依赖、是否有加密、是否访问用户数据等)。
- 提交 → 等 Apple Review(通常 2~7 天)。
一个好消息:你在 TestFlight 里已经过了 Beta 审核的构建,提交正式 App Review 时会有绿色通道——Apple 知道这个构建在 Beta 环境里已经跑过一段时间了,通常审核会更快。
TestFlight 测试结束后,Beta App 还能跑吗
即使你提交了 App Store Review 并且审核通过正式上架了:
- 旧的 TestFlight 构建仍然可以继续运行直到 90 天到期。
- 测试者在 TestFlight 里仍然能看到新的构建推送(如果你还有新构建没提交正式版)。
- 你可以选择:在提交正式 App Store 之后,手动 Expire 所有 TestFlight 构建——让测试者看到的是「测试已结束」→ 引导他们去 App Store 下载正式版。
Beta 测试和正式上架的时间规划
一个典型的 TestFlight → App Store 时间线:
| 阶段 | 时长 | 说明 |
|---|---|---|
| 内部测试(第一轮) | 3~7 天 | 推 2~3 个构建,修掉核心崩溃 |
| 外部测试(TestFlight 审核) | 1~3 天 | 等审核 |
| 外部测试(Beta 收集反馈) | 7~30 天 | 推构建、收反馈、迭代改进 |
| 崩溃率清理 | 1~14 天 | 持续修崩溃直到可接受水平 |
| 提交正式 App Review | 1 天 | 填审核信息、提交 |
| App Store Review | 2~7 天 | 等待 Apple 审核 |
| 审核通过 → 上架 | 0~1 天 | 选一个日期自动发布,或手动立即发布 |
独立开发者通常在 TestFlight 上花 2~6 周的时间,大团队可能更长。核心原则:崩溃率没降到你自己满意的水平之前,不要急着提交 App Review——正式上架后崩溃率高会被 App Store 用户刷差评,拉低整体评分,后续很难扭转。
正式上架后做什么
- 关闭公开链接 → 避免测试者继续涌入 Beta 版。
- Expire 所有 TestFlight 构建 → 让测试者引导到 App Store 正式版。
- 给测试者发致谢邮件(如果有邮箱地址) → 感谢他们帮你测试 → 引导去 App Store 下载正式版 → 可能给个折扣码作为感谢。
- 把崩溃和反馈数据整理归档 → 作为下一版迭代的输入。
- 下一轮 App 版本开发开始 → 继续用 TestFlight 跑下一轮 Beta。