您可以使用fastlane向測試人員分發構建版本,fastlane 是一個開源平台,可自動構建和發布 iOS 和 Android 應用程序。它遵循Fastfile
中定義的簡單指令。設置 fastlane 和Fastfile
後,您可以將 App Distribution 與 fastlane 配置集成。
步驟 1. 設置快速通道
要將 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 應用程序分發管理員角色。
- 創建私有 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
當您使用 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. release = 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>
該操作的返回值是代表上傳版本的哈希值。使用lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
也可以使用此哈希。有關此哈希中的可用字段的更多信息,請參閱REST API 文檔。
fastlane 插件在發布上傳後輸出以下鏈接。這些鏈接可幫助您管理二進製文件並確保測試人員和其他開發人員擁有正確的版本:
- 顯示單個版本的 Firebase 控制台的鏈接。您可以與組織中的其他開發人員共享此鏈接。
- 測試人員體驗中的版本鏈接(iOS Web 剪輯),可讓測試人員查看版本說明並將應用程序安裝到其設備上。測試人員需要訪問該版本才能使用該鏈接。
- 直接下載並安裝應用程序二進製文件(IPA 文件)的簽名鏈接。該鏈接在一小時後過期。
分發構建後,它可以在 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 a project. lane(:add_testers) do firebase_app_distribution_add_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) add testers to this group ) end lane(:remove_testers) do firebase_app_distribution_remove_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) remove testers from this group only ) end
# Add or remove testers with the terminal $ fastlane add_testers $ fastlane remove_testers
運行快速通道操作
fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"
您還可以使用--file="/path/to/testers.txt
而不是--emails
指定測試人員。
firebase_app_distribution_add_testers
和firebase_app_distribution_remove_testers
任務還接受以下參數:
-
project_name
:您的 Firebase 項目編號。 -
group_alias
(可選):如果指定,測試人員將添加到指定的組中(或從指定的組中刪除)。 -
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 | 當您使用 Firebase CLI 對 CI 環境進行身份驗證時打印的刷新令牌(有關詳細信息,請參閱將 CLI 與 CI 系統結合使用)。 |
service_credentials_file | 您的 Google 服務帳戶 json 文件的路徑。請參閱上文了解如何使用服務帳戶憑據進行身份驗證。 |
debug | 一個布爾標誌。您可以將其設置為 |
下一步
要手動或以編程方式註冊更多設備,請參閱註冊其他 iOS 設備。