TestFlight 简介

TestFlight 是什么

TestFlight 让你可以在正式上架前,把构建(Build)分发给真实用户进行测试。它解决的核心问题是:

  • 真机验证:模拟器无法覆盖的推送、相机、定位、性能、审核路径,需要真机。
  • 小范围灰度:在面向全部用户之前,先让一部分人试,发现问题成本更低。
  • 收集反馈:测试员可以直接在 TestFlight App 内反馈,崩溃也能自动上报。

和 Ad Hoc 相比,TestFlight 不需要注册测试设备的 UDID,测试员只要安装 TestFlight App、接受邀请即可,管理成本低得多。

两种测试方式

维度内部测试(Internal)外部测试(External)
适用对象团队成员(开发、QA、产品)外部真实用户 / 客户
人数上限100 人10,000 人
是否需要审核不需要(Beta App Review)需要(首次提交该版本需审核)
邀请方式通过成员邮箱添加邮箱邀请 / 公开链接
测试员是否必须是团队成员
反馈入口TestFlight App 内反馈同左

基本工作流程

一次完整的 TestFlight 测试,通常包含以下步骤:

  1. 构建并上传:用 Xcode、Transporter 或 CI(fastlane)上传带有分发证书签名的构建到 App Store Connect。
  2. 等待处理:构建在 App Store Connect 中「处理中(Processing)」,通常几分钟到几十分钟。
  3. 创建测试组:在 TestFlight 页面创建内测/外测组,并关联构建。
  4. 添加测试员:内测添加团队成员;外测添加邮箱或开启公开链接。
  5. 安装与测试:测试员安装 TestFlight App,接受邀请,下载构建进行测试。
  6. 收集反馈:测试员在 App 内反馈问题,或通过崩溃报告上报。
  7. 修复迭代:根据反馈修复问题,上传新构建,重复以上流程。
  8. 提审上架:测试通过后,把最终构建提交 App Store 审核。

构建有效期

TestFlight 构建在上传后 90 天过期。也就是说,如果 90 天内没有持续上传新构建,旧构建会失效,测试员将无法再安装。这是你需要保持「持续迭代节奏」的硬性约束。

关键概念速览

概念说明
Build(构建)一次编译打包的产物,有唯一的构建号
测试组(Group)一批测试员的集合,可关联特定构建
Beta App Review外部测试的审核环节,与正式审核不同
Export Compliance导出合规声明,涉及加密功能的确认
TestFlight App测试员手机上的安装/反馈工具(App Store 免费下载)

常见问题

  • TestFlight 和真机调试(开发模式)有什么区别? 开发模式需要把设备 UDID 加入描述文件,适合开发阶段的快速调试;TestFlight 用分发签名打包,面向更接近生产环境的测试,且不需要管理 UDID。
  • 测试员需要开发者账号吗? 不需要。外部测试员只要有 Apple ID 即可。
  • 外测的构建和正式提交的是同一个吗? 可以不同。通常先上传一个构建用于外测,测试通过后再提交正式审核(也可以同一个构建)。
  • 构建一直显示 Processing 怎么办? 通常等待即可;若超过数小时,检查构建是否使用分发证书签名、是否完成导出合规声明、是否有 xcarchive 上传错误。