您可以使用fastlane将构建分发给测试人员,fastlane 是一个开源平台,可以自动构建和发布 iOS 和 Android 应用程序。它遵循Fastfile
中定义的简单指令。设置 fastlane 和Fastfile
,您可以将 App Distribution 与您的 fastlane 配置集成。
步骤 1. 设置 fastlane
要将 App Distribution 添加到您的 fastlane 配置,请从您的 iOS 项目的根目录运行以下命令:
fastlane add_plugin firebase_app_distribution
如果命令提示您一个选项,请选择
Option 3: RubyGems.org
。
第 2 步:使用 Firebase 进行身份验证
在使用 fastlane 插件之前,您必须先通过以下方式之一对您的 Firebase 项目进行身份验证。默认情况下,如果没有使用其他身份验证方法,fastlane 插件会从 Firebase CLI 中查找凭据。
使用服务帐户进行身份验证使您可以灵活地将插件与持续集成 (CI) 系统一起使用。提供服务帐户凭据的方法有两种:
- 将您的服务帐户密钥文件传递给
firebase_app_distribution
操作。如果您的构建环境中已有服务帐户密钥文件,您可能会发现此方法很方便。 - 将环境变量
GOOGLE_APPLICATION_CREDENTIALS
设置为指向您的服务帐户密钥文件。如果您已经为其他 Google 服务(例如 Google Cloud)配置了应用程序默认凭据 (ADC),则您可能更喜欢此方法。
- 在Google Cloud Console 上,选择您的项目并创建一个新的服务帐户。
- 添加Firebase App Distribution Admin角色。
- 创建一个 json 私钥并将该密钥移动到您的构建环境可以访问的位置。请务必将此文件保存在安全的地方,因为它会授予管理员访问您 Firebase 项目中 App Distribution 的权限。
- 如果您的应用是在 2019 年 9 月 20 日之后创建的,请跳过此步骤:在 Google API 控制台中,启用Firebase App Distribution API。出现提示时,选择与您的 Firebase 项目同名的项目。
提供或找到您的服务帐户凭据:
- 要将您的服务帐户密钥传递给通道的
firebase_app_distribution
操作,请使用私钥 JSON 文件的路径设置service_credentials_file
参数 要使用 ADC 查找您的凭据,请将环境变量
GOOGLE_APPLICATION_CREDENTIALS
设置为私钥 JSON 文件的路径。例如:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
有关使用 ADC 进行身份验证的更多信息,请阅读为您的应用程序提供凭据。
- 要将您的服务帐户密钥传递给通道的
有关如何对项目进行身份验证的说明,请参阅使用 Firebase CLI 登录。
第 3 步。设置您的 Fastfile 并分发您的应用程序
- 在
./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>
fastlane 插件在发布上传后输出以下链接。这些链接可帮助您管理二进制文件并确保测试人员和其他开发人员拥有正确的版本:
-
firebase_console_uri
- 指向显示单个版本的 Firebase 控制台的链接。您可以与您组织中的其他开发人员共享此链接。 -
testing_uri
- 测试人员体验(iOS 网络剪辑)中发布的链接,可让测试人员查看发布说明并将应用程序安装到他们的设备上。测试人员需要访问版本才能使用该链接。 -
binary_download_uri
- 直接下载和安装应用程序二进制文件(IPA 文件)的签名链接。该链接将在一小时后过期。
分发构建后,它会在 Firebase 控制台的 App Distribution 仪表板中可用 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_testers
和firebase_app_distribution_remove_testers
任务也接受以下参数:
-
project_name
:您的 Firebase 项目编号。 -
service_credentials_file
:您的 Google 服务凭证文件的路径。 -
firebase_cli_token
:Firebase CLI 的授权令牌。
service_credentials_file
和firebase_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 配置文件 ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path | 您的 如果未指定 |
firebase_cli_token | 当您运行插件的登录操作(请参阅上面的使用 Google 帐户进行身份验证),或当您使用 Firebase CLI 对您的 CI 环境进行身份验证时(请阅读将 CLI 与 CI 系统结合使用以获取更多信息)时打印的刷新令牌。 |
service_credentials_file | 您的 Google 服务帐户 json 文件的路径。有关如何使用服务帐户凭据进行身份验证的信息,请参见上文。 |
debug | 布尔标志。您可以将其设置为 |
下一步
要手动或以编程方式注册更多设备,请参阅注册其他 iOS 设备。