本文檔介紹如何使用fastlane向測試人員分發 APK 版本,fastlane 是一個開源平台,可自動建置和發布 iOS 和 Android 應用程式。本文檔遵循Fastfile
中定義的說明。設定 fastlane 和Fastfile
後,您可以將 App Distribution 與 fastlane 配置整合。
在你開始之前
如果您尚未將 Firebase 新增至您的 Android 專案中,請將其新增至您的 Android 專案中。
如果您沒有使用任何其他 Firebase 產品,則只需建立一個專案並註冊您的應用程式。但是,如果您決定將來使用其他產品,請務必完成上面連結的頁面上的所有步驟。
步驟 1. 設定快速通道
若要將 App Distribution 新增至 fastlane 配置中,請從 Android 專案的根目錄執行下列命令:
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 應用程式 ID。您可以在 Firebase 控制台的「常規設定」頁面上找到應用程式 ID。
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
當您使用 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(...) # build_android_app is a built-in fastlane action. release = 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!" ) end end
若要使建置可供測試人員使用,請執行您的通道:
fastlane <lane>
該操作的傳回值是代表上傳版本的雜湊值。使用lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
也可以使用此雜湊。有關此哈希中的可用欄位的更多信息,請參閱REST API 文件。
fastlane 外掛程式在發布上傳後輸出以下連結。這些連結可協助您管理二進位檔案並確保測試人員和其他開發人員擁有正確的版本:
- 顯示單一版本的 Firebase 控制台的連結。您可以與組織中的其他開發人員分享此連結。
- 測試人員體驗(Android 本機應用程式)中的版本鏈接,可讓測試人員查看發行說明並將應用程式安裝到其裝置上。測試人員需要存取該版本才能使用該連結。
- 直接下載並安裝應用程式二進位檔案(APK 或 AAB 檔案)的簽章連結。該連結在一小時後過期。
分發建置後,它可以在 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 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 應用程式 ID。您可以在 Firebase 控制台的「常規設定」頁面上找到應用程式 ID。 app: "1:1234567890:android:0a1b2c3d4e5f67890" |
firebase_cli_token | 當您使用 Firebase CLI 對 CI 環境進行身份驗證時列印的刷新令牌(有關詳細信息,請參閱將 CLI 與 CI 系統結合使用)。 |
service_credentials_file | 您的 Google 服務帳戶 json 檔案的路徑。請參閱上文以了解如何使用服務帳戶憑證進行驗證。 |
debug | 一個布爾標誌。您可以將其設為 |