本文档介绍了有关使用 Firebase App Distribution 的最佳实践,以便让您的 Android 预发布测试工作流在 CI/CD 环境中可持续、可重复进行。解决方案包括 Gradle 和 Fastlane,但为了给您提供更大的灵活性,我们还包含了通过 Firebase 控制台、Firebase CLI 和公共 Firebase App Distribution API 提供的解决方案。此外,本文档还说明了版本和测试人员限制,方便您提前做好规划,以便获得优化体验。
如果您还使用 Apple 平台,请参阅使用 CI/CD 和 Fastlane 将 Apple 应用分发给质量检查测试人员的最佳实践。
准备工作
在实施本文档中所述的最佳实践之前,请务必在 Firebase 控制台中为每个应用启用 App Distribution。如果您未启用 App Distribution,将会收到 404 错误。
如需启用 App Distribution,请按以下步骤操作:
- 在 Firebase 控制台中打开“App Distribution”页面。
- 选择您的 Android 应用。
- 点击开始使用。
鉴于 Android App Bundle (AAB) 渐渐变为最常见的 Android 软件包格式,我们建议您设置通过关联到 Google Play 将 AAB 文件分发给测试人员的功能。
使用 CI/CD 流水线自动执行预发布测试工作流
如果您希望让系统自动构建应用并将其发布给测试人员,并且您使用 CI/CD,我们建议您使用 Fastlane 或 Gradle。此外,您还可以选择使用 Firebase CLI,它可让您访问各种 Firebase 产品。
使用 Fastlane
使用 Fastlane 将 App Distribution 集成到您的 CI/CD 流水线中。Fastlane 是一款开源工具,可自动构建和发布 iOS 和 Android 应用。通过自动构建最新的版本并将其分发给测试人员,您可以确保测试人员使用的始终是应用的最新测试版本。
如需了解如何将 App Distribution 与 Fastlane 集成,请参阅使用 Fastlane 将 Android 应用分发给测试人员。
使用 Gradle
使用 Gradle 通过 App Distribution Gradle 插件将 App Distribution 集成到 Android 构建流程中。利用该插件,您可以在应用的 build.gradle
文件中指定测试人员和版本说明,该文件可让您针对应用的不同 build 类型和变体进行分发配置。
如需了解如何将 App Distribution 与 Gradle 集成,请参阅使用 Gradle 将 Android 应用分发给测试人员。
使用 Firebase CLI
使用 App Distribution 提供的 Firebase CLI 工具以编程方式将 build 分发给测试人员。您可以为 build 指定测试人员和版本说明。
通过指定应用的 Firebase 应用 ID(可选择添加版本说明和包含测试人员电子邮件地址的文件)分发您的最新 Android build:
firebase appdistribution:distribute test.aab \
--app 1:1234567890:android:0a1b2c3d4e5f67890 \
--release-notes "Bug fixes and improvements" --testers-file testers.txt
如需详细了解如何使用 Firebase CLI 自动分发 build,请参阅使用 Firebase CLI 将 Android 应用分发给测试人员。
使用服务凭据进行身份验证
将 App Distribution Fastlane 插件、Gradle 插件或 Firebase CLI 与服务帐号搭配使用。服务帐号是一种代表应用(而不是用户)的 Google 帐号。您的 CI 系统可以使用服务帐号运行 App Distribution 工作负载。如需了解详情,请参阅使用服务帐号进行身份验证。
如果您使用的是工作负载身份联合,则可以生成并使用凭据配置文件,而无需服务帐号密钥。
注意版本限制
在 App Distribution 中,每个应用最多可以有 1000 个版本。这意味着,当您超出此版本限制时,App Distribution 会自动删除超出此限制的最早版本。如需了解如何管理版本限制,请参阅应用版本可以使用多长时间?
将同一组测试人员添加到多个版本
如果要将大量测试人员添加到某些版本,请使用 App Distribution 的批量测试人员管理功能。
我们建议您使用群组将相同的测试人员添加到多个版本中。群组充当访问控制列表;当您从群组中移除某个测试人员后,该测试人员将无法访问分发到该群组的所有版本。如需了解详情,请参阅向群组添加测试人员和从中移除测试人员。
如果有大量测试人员需要管理,您可以使用 Firebase 控制台批量添加和删除测试人员。如需自动添加和移除测试人员,请使用 Firebase CLI、Fastlane、Gradle 或公共 Firebase App Distribution API。
注意测试人员限制
App Distribution 对您可以向 Firebase 项目或 App Distribution 群组添加的测试人员数量施加了限制。超出这些限制后,您便无法再将应用分发给其他测试人员。如需详细了解测试人员限制,请参阅向我的应用添加测试人员是否会受到限制?
让潜在测试人员自行注册以进行测试
为了更轻松地向更多测试人员分发应用,我们建议您使用邀请链接。邀请链接是一种独特的网址,测试人员可以使用该网址输入其电子邮件地址来注册参与应用测试。让用户将自己添加到应用测试人员列表可无缝地扩大内部测试用户群。
邀请链接使用场景包括公司 dogfood 计划、拥有大型质量检查团队的组织,以及希望各个客户端能够控制测试人员访问权限的开发者群组。
我们建议您为群组创建邀请链接。使用邀请链接注册的任何测试人员都会自动添加到后续版本中。
如需了解详情,请参阅创建邀请链接以及向群组添加测试人员和从中移除测试人员。
确保测试人员测试的是您关注的版本
有新版本上传时,系统会通过电子邮件通知您的测试人员。您可以利用以下功能(版本链接和应用内提醒)对此通知进行补充,以确保测试人员测试的是您所关注的特定应用版本:
- 版本链接:如果您想向测试人员共享特定版本,请使用此功能。如需了解如何使用版本链接,请参阅使用 Firebase 控制台将 Android 应用分发给测试人员。您也可以通过我们的 Firebase、Fastlane 和 Gradle 命令行 (CLI)工具提供这些链接,将其用于您的构建自动化工具。
- 应用内提醒:如果您想确保测试人员测试的是应用的最新版本,请使用此类提醒。通过集成 Firebase App Distribution Android SDK,当有新的应用 build 时,您可以直接在应用内向测试人员显示提醒。如需了解如何添加应用内提醒,请参阅通知测试人员有关新 build 的信息。
自动移除从公司离职的测试人员的访问权限
CI/CD 内部测试流程启动并运行后,您需要确保从公司离职的人员无法再访问您的内部 build。为了帮助您管理测试人员对 build 的访问权限,App Distribution 提供了以下选项:
- Fastlane:使用 Fastfile 文件或直接执行 Fastlane 操作。如需了解详情,请参阅使用 Fastlane 将 Android 应用分发给测试人员。
- Firebase CLI:使用
firebase appdistribution:testers:remove
操作。如需了解详情,请参阅使用 Firebase CLI 将 Android 应用分发给测试人员。 - Gradle:如果您使用 Gradle 移除测试人员,请在您的
build.gradle
文件中使用参数
和--PROJECT_NUMBER
传递--EMAILS appDistributionRemoveTesters
。如需了解详情,请参阅使用 Gradle 将 Android 应用分发给测试人员。 - 公共 Firebase App Distribution API:使用
testers.batchRemove
端点。