使用 Firebase CLI 将 Android 应用分发给测试人员


本指南介绍如何使用 Firebase CLI 将 Android App Bundle (AAB) 分发给测试人员。借助 CLI 工具,您可以为 build 指定测试人员和版本说明,然后相应地分发该 build。

App DistributionGoogle Play 的内部应用分享服务相集成,可处理您上传的 AAB 文件,并提供专门根据您的测试人员设备配置而优化的 APK。通过分发 AAB 文件,您可以实现以下目标:

  • 运行专门根据您的测试人员设备而优化的 APK(由 Google Play 提供)。

  • 发现并调试设备特定的问题。

  • 测试 App Bundle 功能,例如 Play Feature DeliveryPlay Asset Delivery

  • 减少测试人员下载文件的大小。

所需权限

如需将 AAB 文件上传到 App Distribution,您必须将您的 Firebase 应用与 Google Play 中的应用相关联。您必须拥有所需的访问权限级别才能执行这些操作。

如果您没有必需的 Firebase 访问权限,可以请求 Firebase Project Owner 通过 Firebase 控制台 IAM 设置为您分配合适的角色。如果您对访问 Firebase 项目(包括查找或分配 Owner)有疑问,请查看“权限设置和 Firebase 项目访问权限”常见问题解答

下表适用于将 Firebase 应用与 Google Play 中的应用相关联以及上传 AAB 文件这两个场景。

Firebase 控制台中的操作 所需的 IAM 权限 默认包含所需权限的 IAM 角色 其他必需的角色
将 Firebase 应用与 Google Play 中的应用相关联 firebase.playLinks.update 拥有下列任一角色: 管理员身份访问 Google Play 开发者账号
将 AAB 文件上传到 App Distribution firebaseappdistro.releases.update 拥有下列任一角色: ––

准备工作

  1. 将 Firebase 添加到您的 Android 项目(如果尚未添加)。在此工作流结束时,您的 Firebase 项目中就有了一个 Firebase Android 应用。

    如果您没有使用任何其他 Firebase 产品,只需创建一个项目并注册应用。如果您决定使用其他产品,请务必完成将 Firebase 添加到您的 Android 项目中的所有步骤。

  2. 如需创建关联到 Google Play 的 Firebase 链接并上传 AAB 文件,请确保您的应用满足以下要求:

    • Google Play 中的应用和 Firebase Android 应用均使用同一软件包名称进行注册。

    • Google Play 中的应用在应用信息中心内设置,并发布到某个 Google Play 轨道(内部测试、封闭式测试、开放式测试或正式版)。

    • 该应用在 Google Play 中的审核已完成,且已发布。 如果“应用状态”列显示以下状态之一,表明您的应用已发布:内部测试(非草稿内部测试)、封闭式测试、开放式测试或正式版。

  3. 将您的 Firebase Android 应用关联至您的 Google Play 开发者账号:

    1. Firebase 控制台中,转到您的项目设置,然后选择“集成”标签页。

    2. “Google Play”卡片中,点击关联
      如果您已有指向 Google Play 的链接,请改为点击管理

    3. 按照屏幕上的说明启用 App Distribution 集成,并选择要与 Google Play 关联的 Firebase Android 应用。

    详细了解如何关联到 Google Play

第 1 步:构建您的应用

当您准备好将应用的预发布版本分发给测试人员时,请构建 AAB 文件(如需查看相关说明,请访问 Android Studio 文档)。

第 2 步:将您的应用分发给测试人员

如需将应用分发给测试人员,请使用 Firebase CLI 上传应用的文件:

  1. 安装或更新至最新版本的 Firebase CLI(建议您下载特定于您的操作系统的 CLI 对应的独立二进制文件)。请务必登录并测试您是否可以访问自己的项目。
  2. Firebase 控制台的 App Distribution 页面中,选择要分发的应用,然后点击开始
  3. 运行 appdistribution:distribute 命令以上传您的应用并将其分发给测试人员。请使用以下参数配置分发:

    appdistribution:distribute 选项
    --app

    必填:您的应用的 Firebase 应用 ID。您可以在 Firebase 控制台的“常规设置”页面中找到此应用 ID。

    --app 1:1234567890:android:0a1b2c3d4e5f67890
    --token

    使用 Firebase CLI 对 CI 环境进行身份验证时输出的刷新令牌(如需了解详情,请参阅将 CLI 与 CI 系统配合使用)。

    --token "$FIREBASE_TOKEN"
    --release-notes
    --release-notes-file

    此构建版本的版本说明。

    您可以直接指定版本说明:

    --release-notes "Text of release notes"

    或者指定一个纯文本文件的路径:

    --release-notes-file "/path/to/release-notes.txt"
    --testers
    --testers-file

    您要邀请的测试人员的电子邮件地址。

    您可以采用以英文逗号分隔的电子邮件地址列表的形式指定测试人员:

    --testers "ali@example.com, bri@example.com, cal@example.com"

    或者,您可以指定一个纯文本文件的路径,该文件包含以英文逗号分隔的电子邮件地址列表:

    --testers-file "/path/to/testers.txt"
    --groups
    --groups-file

    您要邀请的测试人员群组(请参阅管理测试人员)。使用群组别名指定群组,您可以在 Firebase 控制台中查找群组别名。

    您可以采用以英文逗号分隔的列表的形式来指定群组:

    --groups "qa-team, trusted-testers"

    或者,您可以指定一个纯文本文件的路径,该文件包含以英文逗号分隔的群组名称列表:

    --groups-file "/path/to/groups.txt"
    --debug

    您可以添加的标志,用来显示详细日志输出。

    --test-devices
    --test-devices-file

    以下分发类型属于自动化测试助手 Beta 版功能的一部分。

    您要向其分发 build 的测试设备(请参阅自动化测试)。

    您可以采用以英文逗号分隔的电子邮件地址列表的形式指定测试人员:

    --test-devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

    或者,您可以指定一个纯文本文件的路径,该文件包含以英文分号分隔的测试设备列表:

    --test-devices-file: "/path/to/test-devices.txt"
    --test-username

    自动化测试期间要使用的自动登录的用户名。

    --test-password
    --test-password-file

    自动化测试期间要使用的自动登录的密码。

    或者,您可以指定一个纯文本文件的路径,该文件包含密码:

    --test-password-file: "/path/to/test-password.txt"
    --test-username-resource

    自动化测试期间要使用的自动登录的用户名字段的资源名称。

    --test-password-resource

    自动化测试期间要使用的自动登录的密码字段的资源名称。

    --test-non-blocking

    异步运行自动化测试。访问 Firebase 控制台查看自动测试结果。

    例如:

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

    上传版本后,Firebase CLI 会输出以下链接。 这些链接可帮助您管理二进制文件,并确保测试人员和其他开发者拥有正确的版本:

    • firebase_console_uri - 指向显示单个版本的 Firebase 控制台的链接。您可以将此链接分享给贵组织中的其他开发者。
    • testing_uri - 测试人员体验(Android 原生应用)中的版本链接,可让测试人员查看版本说明并将应用安装到设备上。测试人员需要有权访问相应版本才能使用该链接。
    • binary_download_uri - 用于直接下载并安装应用二进制文件(APK 或 AAB 文件)的签名链接。该链接会在 1 小时后过期。

    管理测试人员和群组

    除了分发版本之外,您还可以使用 appdistribution:testers:addappdistribution:testers:remove 邀请新的测试人员,或从 Firebase 项目中移除现有的测试人员。

    将测试人员添加到 Firebase 项目后,您可以将其添加到各个版本中。移除测试人员后,他们将无法再访问项目中的版本。请注意,最近被移除的测试人员在一段时间内仍然可以访问版本。

    例如:

    firebase appdistribution:testers:add anothertester@email.com moretesters@email.com
    
    firebase appdistribution:testers:remove anothertester@email.com moretesters@email.com

    测试人员电子邮件地址必须以空格分隔。您还可以使用 --file /path/to/testers.txt 指定测试人员。

    如果您有大量测试人员,应考虑使用群组:您可以使用 appdistribution:group:createappdistribution:group:delete 在 Firebase 项目中创建或删除群组。

    使用 --group-aliasappdistribution:testers:addappdistribution:testers:remove 命令指定群组。

    例如:

    firebase appdistribution:group:create "QA team" qa-team
    
    firebase appdistribution:testers:add --group-alias=qa-team anothertester@email.com moretesters@email.com
    
    firebase appdistribution:testers:remove --group-alias=qa-team anothertester@email.com moretesters@email.com
    
    firebase appdistribution:group:delete qa-team

当您分发 build 后,在 150 天(5 个月)内均可在 Firebase 控制台的 App Distribution 信息中心中访问它。当该 build 距离过期还有 30 天的时候,Firebase 控制台中和测试人员的测试设备上的 build 列表中都会显示到期通知。

之前未受邀测试应用的测试人员会收到邀请其开始测试的电子邮件,而现有测试人员将收到有关新 build 已可供测试的电子邮件通知(请参阅测试人员设置指南了解如何安装测试应用)。您可以在 Firebase 控制台中监控每个测试人员的状态:他们是否接受了邀请以及是否下载了应用。

在邀请到期前,测试人员有 30 天的时间来接受测试应用的邀请。 当邀请距离到期还有 5 天的时候,Firebase 控制台会在相应版本的测试人员旁边显示到期通知。您可以使用测试人员对应行中的下拉菜单重发邀请来重新开始邀请测试人员。

后续步骤