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