本文档介绍了使用 Firebase App Distribution 和 fastlane 使您的 Apple 平台预发布测试工作流在 CI/CD 环境中可持续和可重复的最佳实践。虽然本文档侧重于 fastlane,但我们还描述了通过 Firebase 控制台、Firebase CLI 和公共 Firebase App Distribution API 提供的解决方案,为您提供更大的灵活性。我们还描述了发布和测试人员限制,以便您可以提前计划以获得最佳体验。
如果您还使用 Android,请参阅使用 CI/CD 将 Android 应用程序分发给 QA 测试人员的最佳实践。
在你开始之前
在您实施本文档中的最佳实践之前,请务必在 Firebase 控制台中为每个应用程序启用 App Distribution。如果您尚未启用 App Distribution,您将收到 404 错误。
要启用 App Distribution,请执行以下步骤:
在 Firebase 控制台中打开App Distribution 页面。
选择您的 iOS 应用程序。
单击开始。
使用 CI/CD 自动化您的预发布测试工作流程
如果您想自动构建应用程序并将其发布给测试人员并且您正在使用 CI/CD,我们建议您使用fastlane 。另一种选择是使用 Firebase CLI,它允许您访问各种 Firebase 产品。
使用快车道
使用 fastlane 将 App Distribution 集成到您的 CI/CD 管道中,fastlane 是一种开源工具,可自动构建和发布 iOS 和 Android 应用程序。通过自动构建最新版本并将其分发给测试人员,您可以确保测试人员始终拥有您应用程序的最新测试版本。
要了解如何将 App Distribution 与 fastlane 集成,请参阅使用 fastlane 将 iOS 应用分发给测试人员。另请参阅引导您完成快速通道集成过程的代码实验室。
使用 Firebase CLI
使用 App Distribution 提供的 Firebase CLI 工具以编程方式将构建分发给测试人员。您可以为构建指定测试人员和发行说明。
通过指定应用程序的 Firebase 应用程序 ID 分发最新的 iOS 版本test.ipa
,可选择添加发行说明和包含测试人员电子邮件的文件:
firebase appdistribution:distribute test.ipa \ --app 1:1234567890:ios:0a1b2c3d4e5f67890 \ --release-notes "Bug fixes and improvements" --testers-file testers.txt
要了解有关使用 Firebase CLI 自动构建的更多信息,请参阅使用 Firebase CLI 将iOS 应用分发给测试人员。
使用服务凭证进行身份验证
将 App Distribution fastlane 插件或 Firebase CLI 与服务帐户一起使用,它们利用应用程序默认凭证并帮助您管理 CI。服务帐户是一种代表应用程序而非用户的 Google 帐户。您的 CI 系统可以使用服务帐户来运行您的 App Distribution 工作负载。要了解更多信息,请参阅使用服务帐户进行身份验证。
如果您使用的是工作负载联合身份验证,则可以生成并使用凭据配置文件而不是服务帐户密钥。
请记住发布限制
App Distribution 支持每个应用最多 1,000 个版本。这意味着当您超过版本限制时,App Distribution 会自动删除超过限制的最旧版本。要了解如何管理版本限制,请参阅应用版本可用多长时间?
将同一组测试人员添加到多个版本
如果您想向您的发布添加大量测试人员,请使用 App Distribution 的批量测试人员管理功能。
我们建议您使用组将相同的测试人员添加到多个版本。组充当访问控制列表;当您从组中删除测试人员时,他们将无法访问分发给该组的所有版本。要了解更多信息,请参阅在组中添加和删除测试人员。
如果您有很多测试人员需要管理,您可以使用 Firebase 控制台批量添加和删除测试人员。要自动添加和删除测试人员,请使用Firebase CLI 、 fastlane或公共 Firebase App Distribution API 。
请记住测试人员的限制
App Distribution 限制您可以添加到 Firebase 项目或 App Distribution 组的测试人员数量。当您超过这些限制时,您将无法将您的应用分发给其他测试人员。要了解有关测试人员限制的更多信息,请参阅将测试人员添加到我的应用程序是否有限制?
管理并自动添加新的 iOS 测试设备
为了帮助您注册其他 iOS 测试仪设备,App Distribution 通过电子邮件或 CSV 文件通知您有关新的 iOS 测试仪设备的信息,从而帮助您在 Apple Developer Portal 中管理您的 iOS 测试仪设备。要了解更多信息,请参阅从 CSV 文件导入测试人员。您还可以使用 fastlane 以编程方式导出新设备。
要了解如何设置自动提取 UDID 的快速通道操作,将它们添加到 Apple 开发人员控制台,然后重建应用程序并分发它,请参阅使用 App Distribution 和 fastlane 更快地分发您的预发布 iOS 构建。
使潜在的测试人员能够自行注册进行测试
为了更轻松地将您的应用程序分发给更多测试人员,我们建议您使用邀请链接。邀请链接是一个唯一的 URL,测试人员可以通过它输入他们的电子邮件地址来注册测试应用程序。使用户能够将自己添加到您的应用程序测试人员列表中是增加内部测试基础的无缝方式。
邀请链接用例包括公司 dogfood 程序、拥有大型 QA 团队的组织以及希望个人客户能够控制测试人员访问权限的开发人员团体。
我们建议您为群组创建邀请链接。使用邀请链接注册的任何测试人员都会自动添加到后续版本中。
要了解更多信息,请参阅创建邀请链接和在组中添加和删除测试人员。
确保测试人员正在测试您关心的版本
上传新版本时,您的测试人员会收到电子邮件通知。作为此通知的补充,您可以使用以下功能(发布链接和应用程序内提醒)来确保您的测试人员正在测试您关心的特定应用程序版本:
发布链接:当您想与测试人员共享特定版本时使用此功能。要了解如何使用发布链接,请参阅使用 Firebase 控制台将 iOS 应用分发给测试人员。这些链接也可用于我们的Firebase和fastlane命令行 (CLI) 工具,以便与您的构建自动化工具一起使用。
应用内提醒:当您想要确保您的测试人员测试的是您应用的最新版本时,请使用这些提醒。通过集成 Firebase App Distribution iOS SDK,您可以在应用程序的新版本可用时直接在应用程序内部向测试人员显示警报。要了解如何添加应用程序内警报,请参阅通知测试人员有关新版本的信息。
自动删除离开公司的测试人员的访问权限
一旦您的 CI/CD 内部测试流程启动并运行,您需要确保离开公司的人员无法再访问您的内部构建。为了帮助您管理测试人员对构建的访问,App Distribution 提供了以下选项:
fastlane:使用您的 Fastfile 文件或直接运行 fastlane 操作。要了解有关使用 fastlane 删除测试人员的更多信息,请参阅使用 fastlane 将iOS 应用分发给测试人员。
公共Firebase App Distribution API :使用
testers.batchRemove
端点。