本指南介紹如何使用fastlane向測試人員分發 AAB 版本,fastlane 是一個開源平台,可自動建置和發布 iOS 和 Android 應用程式。它遵循Fastfile
中定義的簡單指令。設定 fastlane 和Fastfile
後,您可以將 App Distribution 與 fastlane 配置整合。
App Distribution 與 Google Play 的內部應用程式共享服務集成,以處理您上傳的 AAB 並提供針對測試人員的裝置配置進行最佳化的 APK。分發 AAB 可讓您執行以下操作:
執行針對測試人員裝置進行最佳化的最佳化 APK(由 Google Play 提供)。
發現並調試特定於設備的問題。
測試應用程式套件功能,例如Play Feature Delivery和Play Asset Delivery 。
減少測試人員的下載大小。
所需權限
要將 AAB 上傳到 App Distribution,您必須將您的 Firebase 應用程式連結到 Google Play 中的應用程式。您必須具有執行這些操作所需的存取等級。
如果您沒有必要的 Firebase 存取權限,您可以要求 Firebase 專案擁有者透過Firebase 控制台 IAM設定 為您指派適用的角色。如果您對存取 Firebase 專案(包括尋找或指派擁有者)有疑問,請查看「Firebase 專案的權限和存取」常見問題。
下表適用於將 Firebase 應用程式連結到 Google Play 中的應用程式以及上傳 AAB。
Firebase 控制台中的操作 | 所需的 IAM 權限 | 預設包含所需權限的 IAM 角色 | 其他所需角色 |
---|---|---|---|
將 Firebase 應用程式關聯到 Google Play 中的應用程式 | firebase.playLinks.update | 以下角色之一: | 以管理員身分存取 Google Play 開發者帳戶 |
將 AAB 上傳到應用程式分發 | firebaseappdistro.releases.update | 以下角色之一: | –– |
在你開始之前
如果您尚未將 Firebase 新增至您的 Android 專案中,請將其新增至您的 Android 專案中。在此工作流程結束時,您的 Firebase 專案中將擁有一個 Firebase Android 應用程式。
如果您沒有使用任何其他 Firebase 產品,則只需建立一個專案並註冊您的應用程式。如果您決定使用其他產品,請務必完成將 Firebase 新增至您的 Android 專案中的所有步驟。
若要建立指向 Google Play 的 Firebase 連結並上傳 AAB,請確保您的應用程式符合以下要求:
Google Play 中的應用程式和 Firebase Android 應用程式均使用相同的套件名稱註冊。
Google Play 中的應用程式在應用程式儀表板上設置,並分發到 Google Play 軌道之一(內部測試、封閉測試、開放測試或生產)。
該應用程式在 Google Play 中的審核已完成並已發布。如果應用程式狀態列顯示下列狀態之一,則您的應用程式已發布:內部測試(不是草稿內部測試)、封閉測試、開放測試或生產。
將您的 Firebase Android 應用程式連結到您的 Google Play 開發者帳戶:
在 Firebase 控制台中,前往您的
項目設置,然後選擇整合選項卡。 在Google Play卡上,點選連結。
如果您已有 Google Play 鏈接,請點擊「管理」 。按照螢幕上的指示啟用應用程式分發整合並選擇要連結到 Google Play 的 Firebase Android 應用程式。
了解有關連結到 Google Play 的更多資訊。
步驟 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 控制台上,選擇您的專案並建立新的服務帳號。
- 新增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"
test_devices
test_devices_file
以下分發類型是自動測試程式 beta 功能的一部分。
您想要將建置分發到的測試設備(請參閱自動化測試)。
您可以將測試設備指定為以分號分隔的測試設備清單:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
或者,您可以指定包含以分號分隔的測試設備清單的純文字檔案的路徑:
test_devices_file: "/path/to/test-devices.txt"
test_username
自動化測試期間使用的自動登入使用者名稱。
test_password
test_password_file
自動化測試時使用的自動登入密碼。
或者,您可以指定包含密碼的純文字檔案的路徑:
test_password_file: "/path/to/test-password.txt"
test_username_resource
自動化測試期間使用的自動登入的使用者名字段的資源名稱。
test_password_resource
自動化測試期間使用的自動登入密碼欄位的資源名稱。
test_non_blocking
非同步運行自動化測試。造訪 Firebase 控制台以取得自動測試結果。
debug
一個布爾標誌。您可以將其設為
true
以列印詳細的偵錯輸出。
platform :android do desc "My awesome app" lane :distribute do build_android_app(task: "bundle", ...) # 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!", android_artifact_type: "AAB" ) 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 | 一個布爾標誌。您可以將其設為 |