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

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

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

步骤 1. 设置快车道

  1. 安装并设置 fastlane

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

    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 配置文件 ( GoogleService-Info.plist ) 时才需要:您的应用的 Firebase 应用 ID。您可以在 Firebase 控制台的“常规设置”页面上找到应用 ID。

    app: "1:1234567890:ios:0a1b2c3d4e5f67890"
    googleservice_info_plist_path

    您的GoogleService-Info.plist文件的路径,相对于存档的产品路径。默认设置为GoogleService-Info.plist

    如果未指定app参数,则该文件用于获取您的应用的 Firebase 应用 ID。

    firebase_cli_token

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

    service_credentials_file

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

    ipa_path

    替换apk_path (已弃用)。要上传的 IPA 文件的绝对路径。如果未指定,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 :ios do
    desc "My awesome app"
    lane :distribute do
        build_ios_app(...)
        # build_ios_app is a built-in fastlane action.

        firebase_app_distribution(
            app: "1:123456789:ios:abcd1234",
            testers: "tester1@company.com, tester2@company.com",
            release_notes: "Lots of amazing new features to test out!"
        )

    end
end

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

fastlane <lane>

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

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

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

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

要了解有关此 fastlane 插件功能的更多信息,请参阅获取有关您的应用最新版本的信息

步骤 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 配置文件 ( GoogleService-Info.plist ) 时才需要:您的应用的 Firebase 应用 ID。您可以在 Firebase 控制台的“常规设置”页面上找到应用 ID。

app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path

您的GoogleService-Info.plist文件的路径,相对于存档的产品路径。默认设置为GoogleService-Info.plist

如果未指定app参数,则该文件用于获取您的应用的 Firebase 应用 ID。

firebase_cli_token

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

service_credentials_file

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

debug

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

下一步