您可以使用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 項目進行身份驗證。有三種方法可以實現這一點:
- 運行以下命令:
bundle exec fastlane run firebase_app_distribution_login
該命令打印身份驗證鏈接。 在瀏覽器中打開鏈接。
出現提示時,登錄您的 Google 帳戶並授予訪問您的 Firebase 項目的權限。然後登錄操作會打印一個刷新令牌,App Distribution 插件使用該令牌向 Firebase 進行身份驗證。
- 將上一步中的令牌傳遞給插件,稍後在設置 Fastfile 時使用
firebase_cli_token
參數,或者通過設置FIREBASE_TOKEN
環境變量:export FIREBASE_TOKEN=token
使用服務帳戶進行身份驗證允許您靈活地將該插件與您的持續集成 (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
操作,請將service_credentials_file
參數設置為您的私鑰 JSON 文件的路徑 要使用 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>
分發構建後,它會在 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_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 設備。