使用 CI/CD 和 Fastlane 将 Apple 应用分发给质量检查测试人员的最佳实践

本文档介绍了有关使用 Firebase App Distribution 和 Fastlane 的最佳实践,以便让您的 Apple 平台预发布测试工作流在 CI/CD 环境中可持续、可重复进行。虽然本文档重点介绍的是 Fastlane,但其中也介绍了通过 Firebase 控制台、Firebase CLI 和公共 Firebase App Distribution API 提供的解决方案,以赋予您更大的灵活性。此外,本文档还说明了版本和测试人员限制,方便您提前做好规划,以便获得优化体验。

如果您还使用 Android,请参阅使用 CI/CD 将 Android 应用分发给质量检查测试人员的最佳实践

准备工作

在实施本文档中所述的最佳实践之前,请务必在 Firebase 控制台中为每个应用启用 App Distribution。如果您未启用 App Distribution,将会收到 404 错误。

如需启用 App Distribution,请按以下步骤操作:

  1. Firebase 控制台中,打开App Distribution”页面

  2. 选择您的 iOS 应用。

  3. 点击开始使用

使用 CI/CD 自动执行预发布测试工作流

如果您希望让系统自动构建应用并将其发布给测试人员,并且您使用 CI/CD,我们建议您使用 fastlane。此外,您还可以选择使用 Firebase CLI,它可让您访问各种 Firebase 产品。

使用 Fastlane

使用 Fastlane 将 App Distribution 集成到您的 CI/CD 流水线中。Fastlane 是一款开源工具,可自动构建和发布 iOS 和 Android 应用。通过自动构建最新的版本并将其分发给测试人员,您可以确保测试人员使用的始终是应用的最新测试版本。

如需了解如何将 App Distribution 与 Fastlane 集成,请参阅使用 Fastlane 将 iOS 应用分发给测试人员。另请参阅引导您完成 Fastlane 集成过程的 codelab

使用 Firebase CLI

使用 App Distribution 提供的 Firebase CLI 工具以编程方式将 build 分发给测试人员。您可以为 build 指定测试人员和版本说明。

通过指定应用的 Firebase 应用 ID(可选择添加版本说明和包含测试人员电子邮件地址的文件)分发您的最新 iOS build test.ipa

firebase appdistribution:distribute test.ipa  \
    --app 1:1234567890:ios:0a1b2c3d4e5f67890  \
    --release-notes "Bug fixes and improvements" --testers-file testers.txt

如需详细了解如何使用 Firebase CLI 自动分发 build,请参阅使用 Firebase CLI 将 iOS 应用分发给测试人员

使用服务凭据进行身份验证

App Distribution Fastlane 插件Firebase CLI 与服务账号搭配使用,这些服务账号可利用应用默认凭据,有助于您管理 CI。服务账号是一种代表应用(而不是用户)的 Google 账号。您的 CI 系统可以使用服务账号运行 App Distribution 工作负载。如需了解详情,请参阅使用服务账号进行身份验证

如果您使用的是工作负载身份联合,则可以生成并使用凭据配置文件,而无需服务账号密钥。

注意版本限制

App Distribution 中,每个应用最多可以有 1000 个版本。这意味着,当您超出此版本限制时,App Distribution 会自动删除超出此限制的最早版本。如需了解如何管理版本限制,请参阅应用版本可以使用多长时间?

将同一组测试人员添加到多个版本

如果要将大量测试人员添加到某些版本,请使用 App Distribution 的批量测试人员管理功能。

我们建议您使用群组将相同的测试人员添加到多个版本中。群组充当访问控制列表;当您从群组中移除某个测试人员后,该测试人员将无法访问分发到该群组的所有版本。如需了解详情,请参阅向群组添加测试人员和从中移除测试人员

如果有大量测试人员需要管理,您可以使用 Firebase 控制台批量添加和删除测试人员。如需自动添加和移除测试人员,请使用 Firebase CLIfastlane公共 Firebase App Distribution API

注意测试人员限制

App Distribution 对您可以向 Firebase 项目或 App Distribution 群组添加的测试人员数量施加了限制。超出这些限制后,您便无法再将应用分发给其他测试人员。如需详细了解测试人员限制,请参阅向我的应用添加测试人员是否会受到限制?

管理和自动添加新的 iOS 测试人员设备

为了帮助您注册额外的 iOS 测试人员设备,当添加了新的测试人员 iOS 设备后,App Distribution 会通过电子邮件或 CSV 文件告知您,从而帮助您在 Apple Developer Portal 中管理您的 iOS 测试人员设备。如需了解详情,请参阅通过 CSV 文件导入测试人员。您还可以通过编程方式使用 Fastlane 导出新设备

如需了解如何设置 Fastlane 操作,以便让系统自动拉取 UDID,将其添加到 Apple 开发者控制台,然后重新构建并分发应用的过程,请参阅借助 App Distribution 和 Fastlane 更快地分发预发布的 iOS build

让潜在测试人员自行注册以进行测试

为了更轻松地向更多测试人员分发应用,我们建议您使用邀请链接。邀请链接是一种独特的网址,测试人员可以使用该网址输入其电子邮件地址来注册参与应用测试。让用户将自己添加到应用测试人员列表可无缝地扩大内部测试用户群。

邀请链接使用场景包括公司 dogfood 计划、拥有大型质量检查团队的组织,以及希望各个客户端能够控制测试人员访问权限的开发者群组。

我们建议您为群组创建邀请链接。使用邀请链接注册的任何测试人员都会自动添加到后续版本中。

如需了解详情,请参阅创建邀请链接以及向群组添加测试人员和从中移除测试人员

确保测试人员测试的是您关注的版本

有新版本上传时,系统会通过电子邮件通知您的测试人员。您可以利用以下功能(版本链接和应用内提醒)对此通知进行补充,以确保测试人员测试的是您所关注的特定应用版本:

  • 版本链接:如果您想向测试人员共享特定版本,请使用此功能。如需了解如何使用版本链接,请参阅使用 Firebase 控制台将 iOS 应用分发给测试人员。 您也可以通过我们的 Firebasefastlane 命令行 (CLI) 工具提供这些链接,将其用于您的 build 自动化工具。

  • 应用内提醒:如果您想确保测试人员测试的是应用的最新版本,请使用此类提醒。通过集成 Firebase App Distribution iOS SDK,当有新的应用 build 时,您可以直接在应用内向测试人员显示提醒。如需了解如何添加应用内提醒,请参阅通知测试人员有关新 build 的信息

自动移除从公司离职的测试人员的访问权限

CI/CD 内部测试流程启动并运行后,您需要确保从公司离职的人员无法再访问您的内部 build。为了帮助您管理测试人员对 build 的访问权限,App Distribution 提供了以下选项: