获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

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

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

本指南介绍如何使用fastlane将 AAB 构建分发给测试人员,fastlane 是一个开源平台,可自动构建和发布 iOS 和 Android 应用程序。它遵循Fastfile中定义的简单指令。设置 fastlane 和您的Fastfile ,您可以将 App Distribution 与您的 fastlane 配置集成。

App Distribution 与 Google Play 的内部应用共享服务集成,以处理您上传的 AAB 并提供针对测试人员的设备配置进行了优化的 APK。分发 AAB 可让您执行以下操作:

  • 运行针对测试人员的设备进行了优化的优化 APK(由 Google Play 提供)。

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

  • 测试应用程序包功能,例如Play Feature DeliveryPlay Asset Delivery

  • 减少测试人员的下载量。

所需权限

要将 AAB 上传到 App Distribution,您必须将 Firebase 应用链接到 Google Play 中的应用。您必须具有执行这些操作所需的访问级别。

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

下表适用于将 Firebase 应用链接到 Google Play 中的应用,以及上传 AAB。

Firebase 控制台中的操作所需的 IAM 权限默认情况下包含所需权限的 IAM 角色其他必需的角色
将 Firebase 应用与 Google Play 中的应用相关联firebase.playLinks.update以下角色之一:管理员身份访问 Google Play 开发者帐户
将 AAB 上传到应用分发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 控制台中,转到您的 Project settings ,然后选择Integrations选项卡。

    2. Google Play卡上,点击链接
      如果您已有指向 Google Play 的链接,请改为单击“管理”。

    3. 按照屏幕上的说明启用 App Distribution 集成并选择要链接到 Google Play 的 Firebase Android 应用。

    了解有关链接到 Google Play 的更多信息。

步骤 1. 设置快车道

  1. 安装并设置 fastlane

  2. 要将 App Distribution 添加到您的 fastlane 配置中,请从您的 Android 项目的根目录运行以下命令:

    fastlane add_plugin firebase_app_distribution

    如果命令提示您一个选项,请选择Option 3: RubyGems.org

第 2 步:使用 Firebase 进行身份验证

在您可以使用 fastlane 插件之前,您必须首先通过以下方式之一对您的 Firebase 项目进行身份验证。默认情况下,如果没有使用其他身份验证方法,fastlane 插件会从 Firebase CLI 中查找凭据。

第 3 步:设置您的 Fastfile 并分发您的应用程序

  1. ./fastlane/Fastfile通道中,添加一个firebase_app_distribution块。使用以下参数配置分布:
    firebase_app_distribution 参数
    app

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

    app: "1:1234567890:android:0a1b2c3d4e5f67890"
    firebase_cli_token

    当您运行插件的登录操作(请参阅上面的使用 Google 帐户进行身份验证)或使用 Firebase CLI 对 CI 环境进行身份验证时打印的刷新令牌(有关更多信息,请阅读将 CLI 与 CI 系统一起使用)。

    service_credentials_file

    您的 Google 服务帐户 json 文件的路径。有关如何使用服务帐户凭据进行身份验证的信息,请参见上文。

    android_artifact_type

    指定 Android 文件类型(APK 或 AAB)。

    android_artifact_path

    替换apk_path (已弃用)。要上传的 APK 或 AAB 文件的绝对路径。如果未指定,fastlane 会根据生成文件的通道确定文件的位置。

    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

    一个布尔标志。您可以将其设置为true以打印详细的调试输出。

platform :android do
    desc "My awesome app"
    lane :distribute do
        build_android_app(task: "bundle", ...)
        # build_android_app is a built-in fastlane action.
        firebase_app_distribution(
            app: "1:123456789:android:abcd1234",
            testers: "tester1@company.com, tester2@company.com",
            release_notes: "Lots of amazing new features to test out!",
            android_artifact_type: "AAB"
        )
    end
end

要使测试人员可以使用构建,请运行您的通道:

fastlane <lane>

分发构建后,它会在 Firebase 控制台的应用分发信息中心中提供 150 天。当构建距离到期 30 天时,控制台和测试人员在其测试设备上的构建列表中会显示到期通知。

之前未受邀测试应用程序的测试人员会收到电子邮件邀请以开始测试。现有测试人员会收到电子邮件通知,表明新版本已准备好进行测试。要了解如何安装测试应用程序,请参阅测试仪设置指南。您可以监控每个测试人员的状态,以确定他们是否接受了邀请以及是否在 Firebase 控制台中下载了应用。

(可选)要在每次在 App Distribution 中创建新版本时自动增加内部版本号,您可以使用firebase_app_distribution_get_latest_release操作,例如increment_version_code fastlane 插件。以下代码提供了如何自动增加内部版本号的示例:

lane :increment_version do
  latest_release = firebase_app_distribution_get_latest_release(
    app: "<your Firebase app ID>"
  )
  increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end

要了解有关firebase_app_distribution_get_latest_release操作的更多信息,请参阅获取有关您的应用最新版本的信息

步骤 4(可选)。管理分发的测试人员

您可以使用您的Fastfile文件或直接运行 fastlane 操作在您的应用版本中添加和删除测试人员。运行操作会直接覆盖Fastfile中设置的值。

将测试人员添加到您的 Firebase 项目后,您可以将其添加到各个版本中。从您的 Firebase 项目中移除的测试人员无法再访问您项目中的版本,但他们可能会在一段时间内保留对您的版本的访问权限。

使用Fastfile

# Use lanes to add or remove testers from an app release.
lane(:add_testers) do
  firebase_app_distribution_add_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
  )
end

lane(:remove_testers) do
  firebase_app_distribution_remove_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
  )
end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers

运行快车道操作

fastlane run firebase_app_distribution_add_testers emails:"foo@google.com,bar@google.com"

fastlane run firebase_app_distribution_remove_testers emails:"foo@google.com,bar@google.com"

您还可以使用--file="/path/to/testers.txt而不是--emails指定测试人员。

firebase_app_distribution_add_testersfirebase_app_distribution_remove_testers任务也接受以下参数:

  • project_name :您的 Firebase 项目编号。
  • service_credentials_file :您的 Google 服务凭证文件的路径。
  • firebase_cli_token :Firebase CLI 的身份验证令牌。

service_credentials_filefirebase_cli_token是上传操作使用的相同参数。

步骤 5(可选)。获取有关您的应用最新版本的信息

您可以使用firebase_app_distribution_get_latest_release操作在 App Distribution 中获取有关您应用的最新版本的信息,包括应用版本信息、发行说明和创建时间。用例包括自动增加版本和继承前一版本的发行说明。

操作的返回值是代表最新版本的哈希。此哈希也可使用lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] 。有关此哈希中可用字段的更多信息,请参阅REST API 文档

参数

firebase_app_distribution_get_latest_release 参数
app

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

app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token

当您运行插件的登录操作(请参阅上面的使用 Google 帐户进行身份验证)或使用 Firebase CLI 对 CI 环境进行身份验证时打印的刷新令牌(有关更多信息,请阅读将 CLI 与 CI 系统一起使用)。

service_credentials_file

您的 Google 服务帐户 json 文件的路径。有关如何使用服务帐户凭据进行身份验证的信息,请参见上文。

debug

一个布尔标志。您可以将其设置为true以打印详细的调试输出。

下一步

了解使用 CI/CD 将 Android 应用程序分发给 QA 测试人员的最佳实践。