TestFlight — Apple官方平台,用于在测试人员之间分发应用程序的预发布版本。允许开发人员将Beta版本上传到App Store Connect,管理访问权限并在发布前收集反馈。根据Apple Developer Documentation,TestFlight通过公共链接支持多达10,000名外部测试人员,通过Apple ID支持多达100名内部测试人员。
要点
TestFlight — 集成在App Store Connect中的Beta测试平台,用于在App Store发布前分发应用程序的预发布版本。开发人员上传通过Xcode归档的版本,并在测试人员之间分发,无需手动分发IPA文件。
Apple于2014年收购TestFlight,以取代通过Provisioning Profiles进行的Ad Hoc分发。此前,开发人员需要收集设备的UDID、创建provisioning profile并通过第三方服务分发IPA。TestFlight自动化了整个流程:测试人员通过TestFlight App安装Beta应用程序,开发人员通过Web界面管理访问权限。
根据WWDC 2024,TestFlight每月处理超过200万次测试安装。该平台支持在所有Apple平台上分发,包括iOS、iPadOS、macOS、tvOS、watchOS和visionOS,使其成为Apple生态系统中唯一的统一Beta测试工具。
TestFlight将测试分为两种类型:Internal Testing面向团队成员(最多100名参与者,上传后立即可用)和External Testing面向外部用户(最多10,000名参与者,需要Beta App Review检查)。内部测试无需审核,非常适合在团队内快速检查版本。
External Testing允许通过电子邮件或公共链接邀请测试人员。通过Beta App Review后,版本可供所有受邀者下载。对于首次发布的应用程序,根据App Store Review Guidelines规则,External Testing是强制性的。
TestFlight的工作流程从在Xcode中归档应用程序并通过Organizer或Transporter上传到App Store Connect开始。上传后,版本会经过自动有效性检查和安全性扫描。
内部测试人员通过TestFlight App收到可用版本的通知。他们可以安装应用程序并通过内置的截图和文本评论界面留下反馈。外部测试人员需要Beta App Review批准,之后版本像内部版本一样分发。
TestFlight自动收集使用指标:安装次数、崩溃日志、带注释的截图和反馈。开发人员在App Store Connect的TestFlight部分中看到这些数据。所有数据按版本聚合,便于比较不同版本的稳定性。
每个上传到TestFlight的版本都有90天的有效期。到期后,测试人员无法再安装或运行应用程序。要继续测试,需要上传具有更高版本号的新版本。此限制鼓励开发人员定期更新版本。
在到期日临近时,TestFlight会向开发人员和测试人员发送通知。如果新版本未及时上传,测试将中断,参与者将失去对应用程序的访问权限,直到新版本出现。
TestFlight的设置从App Store Connect的TestFlight部分开始。启动需要至少一个已上传的应用程序版本。界面分为三个主要部分:版本、内部测试人员和外部组。
内部测试人员通过Apple ID添加。每个参与者必须通过App Store Connect以包含测试访问权限的角色邀请。邀请后,测试人员会收到电子邮件并可以通过设备上的TestFlight App安装应用程序。
对于外部测试,创建按场景组合测试人员的组。每个组绑定到特定版本。组可以有用于独立加入的公共链接 — 这对于开源项目或大规模Beta测试很方便。根据Apple Developer Documentation,公共链接可以随时撤销,已加入的测试人员不会失去访问权限。
上传版本到TestFlight通过项目归档后的Xcode Organizer完成。上传需要在Apple Developer Program中具有App Store Connect的Admin或App Manager权限的帐户。
上传前,版本必须使用有效的Distribution Certificate签名并包含具有App Store分发的Provisioning Profile。当开发人员帐户激活时,Xcode通过Automatic Signing自动配置签名。
# 通过xcrun altool上传(Xcode 15+使用notarytool)
xcrun notarytool submit MyApp.ipa --apple-id "developer@example.com" --team-id "TEAMID123" --password "@keychain:AC_PASSWORD" --wait
# 直接上传到App Store Connect
xcrun altool --upload-app -f MyApp.ipa -t ios -u "developer@example.com" -p "@keychain:AC_PASSWORD"
上传后,版本经过自动检查:二进制文件验证、恶意代码扫描、App Store Review Guidelines合规性检查。通常检查需要几分钟到一小时。状态显示在App Store Connect的TestFlight部分中。
对于CI/CD(GitHub Actions、Bitrise、Jenkins),使用xcrun altool或notarytool直接上传版本,无需Xcode。认证密钥存储在Keychain或App Store Connect API中。Fastlane提供upload_to_testflight操作以实现流程的完全自动化。
邀请测试人员到TestFlight取决于测试类型。内部测试人员直接在App Store Connect中通过Apple ID添加,上传后立即获得对所有版本的访问权限。外部测试人员通过指定特定版本的组进行邀请。
对于外部测试,需要通过Beta App Review — 检查基本功能和合规性的简化版App Review。第一个外部版本通常需要1-2天通过检查,后续版本更快。批准后,组中的所有测试人员都会收到通知。
公共链接简化了邀请:开发人员在网站或社交媒体上发布链接,用户点击后自动加入测试。TestFlight每个外部组支持最多10,000名参与者,组数不限。每个应用程序可以配置多个具有不同版本的组。
测试人员通过TestFlight App发送反馈,附上截图和注释。开发人员在App Store Connect中按版本分组查看所有反馈。每条反馈包含操作系统版本、设备型号和时间戳,便于重现和修复错误。
从TestFlight在App Store发布应用程序无需重新构建。只需在App Store Connect中选择已批准的Beta版本并点击Submit for Review。经过Beta测试的同一版本无需重新编译即可发送到最终App Review。
这确保参与者测试的确切版本进入生产环境,消除了Beta版本和发布版本之间差异的风险。通过最终App Review后,版本根据设置的Availability规则自动在App Store中发布。
发布前,开发人员必须更新元数据:版本描述、新操作系统版本的截图以及更改信息。未发送到App Store的TestFlight版本在上传后90天自动删除,包括所有测试数据。
常见问题
自动检查通常需要5分钟到一小时。外部测试的Beta App Review — 几小时到2天。对于重复版本,检查更快,因为Apple会考虑以前审核的历史记录。
TestFlight仅适用于Apple Developer Program参与者(每年99美元)。没有订阅,无法将版本上传到App Store Connect。没有订阅的Ad Hoc分发需要Enterprise帐户或SideStore。
Ad Hoc需要收集设备UDID、创建Provisioning Profile和手动分发IPA。TestFlight自动化了整个流程:开发人员上传版本,测试人员通过TestFlight App安装,无需provisioning profiles和UDID。
版本在TestFlight中的生命周期为从上传起90天。到期后,测试人员无法安装或运行应用程序。要延长测试,需要上传具有更高版本号的新版本。
TestFlight从macOS 11 Big Sur开始支持macOS应用程序。测试人员通过Mac上的TestFlight App安装Beta版本。上传和管理过程与iOS版本没有区别:在Xcode中归档,通过Organizer上传。
总结
我们将开发一款交钥匙移动应用程序
IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。