您可以使用 App Distribution Gradle 插件將 App Distribution 集成到您的 Android 構建過程中。該插件允許您在應用程序的build.gradle
文件中指定測試人員和發行說明,讓您可以為應用程序的不同構建類型和變體配置分發。
本指南介紹如何使用 App Distribution Gradle 插件將 Android App Bundle (AAB) 分發給測試人員。
要遵循本指南,您需要滿足以下先決條件:訪問 Firebase 項目(所有者或Firebase 管理員)、訪問 Google Play 開發者帳戶(所有者或管理員)以及在 Google Play 中處於已發布狀態的應用。
關於分發 Android App Bundle
App Distribution 與 Google Play 的內部應用共享服務集成,以處理您上傳的 AAB 並提供針對測試人員的設備配置進行了優化的 APK。分發 AAB 時,您可以:
在你開始之前
如果您還沒有,請將 Firebase 添加到您的 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 控制台中,轉到您的
Project settings ,然後選擇Integrations選項卡。在Google Play卡上,點擊鏈接。
如果您已有指向 Google Play 的鏈接,請改為單擊“管理”。按照屏幕上的說明啟用 App Distribution 集成並選擇要鏈接到 Google Play 的 Firebase Android 應用。
了解有關鏈接到 Google Play 的更多信息。
步驟 1. 設置您的 Android 項目
在您的項目級 Gradle 文件(通常為
android/build.gradle
)中,添加 App Distribution 插件作為 buildscript 依賴項:buildscript { repositories { // Check that you have Google's Maven repository (if not, add it). google() jcenter() } dependencies { // Add the App Distribution Gradle plugin classpath 'com.google.firebase:firebase-appdistribution-gradle:3.0.2' } }
在您的應用級 Gradle 文件(通常為
android/app/build.gradle
)中,在 Android 插件下方包含 App Distribution 插件:apply plugin: 'com.android.application' // ... // Apply the App Distribution Gradle plugin apply plugin: 'com.google.firebase.appdistribution' // ...
如果您位於公司代理或防火牆後面,請添加以下Java 系統屬性,以使 App Distribution 能夠將您的分配上傳到 Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
第 2 步:使用 Firebase 進行身份驗證
在您可以使用 Gradle 插件之前,您必須首先對您的 Firebase 項目進行身份驗證。有三種方法可以實現這一點:
- 運行以下命令:
./gradlew appDistributionLogin
該命令打印身份驗證鏈接。 在瀏覽器中打開鏈接。
出現提示時,登錄您的 Google 帳戶並授予訪問您的 Firebase 項目的權限。 Gradle 命令打印一個刷新令牌,App Distribution 插件使用該令牌向 Firebase 進行身份驗證。
- 將環境變量
FIREBASE_TOKEN
設置為上一步中的令牌:export FIREBASE_TOKEN=token
使用服務帳戶進行身份驗證允許您靈活地將該插件與您的持續集成 (CI) 系統一起使用。提供服務帳戶憑據的方法有兩種:
- 將您的服務帳戶密鑰文件傳遞給
build.gradle
。如果您的構建環境中已經有服務帳戶密鑰文件,您可能會發現此方法很方便。 - 將環境變量
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 項目同名的項目。
提供或找到您的服務帳戶憑據:
- 要向 Gradle 傳遞您的服務帳戶密鑰,請在您的
build.gradle
文件中,將屬性serviceCredentialsFile
設置為私鑰 JSON 文件。 要使用 ADC 找到您的憑據,請將環境變量
GOOGLE_APPLICATION_CREDENTIALS
設置為私鑰 JSON 文件的路徑。例如:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
有關使用 ADC 進行身份驗證的更多信息,請閱讀為您的應用程序提供憑據。
- 要向 Gradle 傳遞您的服務帳戶密鑰,請在您的
有關如何對項目進行身份驗證的說明,請參閱使用 Firebase CLI 登錄。
步驟 3. 配置您的分發屬性
在您的
app/build.gradle
文件中,通過添加至少一個firebaseAppDistribution
部分來配置 App Distribution。例如,要將release
版本分發給測試人員:android { // ... buildTypes { release { firebaseAppDistribution { artifactType="AAB" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
App Distribution 可以針對構建類型和產品風格進行配置。例如,要以“演示”和“完整”產品風格分發
debug
和release
版本:android { // ... buildTypes { debug {...} release {...} } flavorDimensions "version" productFlavors { demo { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for demo version" testers="demo@testers.com" } } full { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for full version" testers="full@testers.com" } } } // ... }
使用以下參數配置分佈:
應用分發構建參數 | |
---|---|
appId | 您應用的 Firebase 應用 ID。僅當您沒有安裝 Google Services Gradle 插件時才需要。您可以在 appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile | 您的服務帳號私鑰 JSON 文件的路徑。僅當您使用服務帳戶身份驗證時才需要。 |
artifactType | 指定應用的文件類型。可以設置為 |
artifactPath | 要上傳的 APK 或 AAB 文件的絕對路徑。 |
releaseNotes 或releaseNotesFile | 此版本的發行說明。 您可以直接指定發行說明,也可以指定純文本文件的路徑。 |
testers 或測試人員testersFile | 您要將構建分發到的測試人員的電子郵件地址。 您可以將測試人員指定為以逗號分隔的電子郵件地址列表: testers="ali@example.com, bri@example.com, cal@example.com" 或者,您可以指定包含以逗號分隔的電子郵件地址列表的文件的路徑: testersFile="/path/to/testers.txt" |
groups 或groupsFile | 您要將構建分發到的測試人員組(請參閱管理測試人員)。組使用指定 您可以將組指定為以逗號分隔的組別名列表: groups="qa-team, android-testers" 或者,您可以指定包含逗號分隔的組別名列表的文件的路徑: groupsFile="/path/to/tester-groups.txt" |
stacktrace | 打印出用戶異常的堆棧跟踪。這在調試問題時很有幫助。 |
第 4 步:將您的應用分發給測試人員
最後,要打包您的測試應用並邀請測試人員,請使用項目的 Gradle 包裝器構建目標
BUILD-VARIANT
和appDistributionUpload BUILD-VARIANT
,其中BUILD-VARIANT是您在上一步中配置的可選產品風味和構建類型。有關產品風味的更多信息,請參閱配置構建變體。例如,要使用
release
版本變體分發您的應用程序,請運行以下命令:./gradlew bundleRelease appDistributionUploadRelease
或者,如果您使用Google 帳戶進行了身份驗證並且沒有在 Gradle 構建文件中提供憑據,請包含
FIREBASE_TOKEN
變量:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew bundleRelease appDistributionUploadRelease
您還可以通過以
--<property-name>=<property-value>
的形式傳遞命令行參數來覆蓋build.gradle
文件中設置的值。例如:要將調試版本上傳到 App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="AAB"
要從您的 Firebase 項目中邀請更多測試人員或移除現有測試人員,請執行以下操作:
./gradlew appDistributionAddTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
./gradlew appDistributionRemoveTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
將測試人員添加到您的 Firebase 項目後,您可以將其添加到各個版本中。被移除的測試人員將無法再訪問您項目中的版本,但仍可能在一段時間內保留對您的版本的訪問權限。
您還可以使用
--file="/path/to/testers.txt"
而不是--emails
指定測試人員。appDistributionAddTesters
和appDistributionRemoveTesters
任務也接受以下參數:projectNumber
:您的 Firebase 項目編號。serviceCredentialsFile
:您的 Google 服務憑據文件的路徑。這與上傳操作使用的參數相同。
分發構建後,它會在 Firebase 控制台的 App Distribution 儀表板中可用 150 天(五個月)。當構建距離到期 30 天時,控制台和測試人員在其測試設備上的構建列表中都會顯示到期通知。
未受邀測試應用程序的測試人員會收到電子郵件邀請以開始使用,現有測試人員會收到電子郵件通知,表明新版本已準備好進行測試(請閱讀測試人員設置指南以獲取有關如何安裝測試應用程序的說明)。您可以在 Firebase 控制台中監控每個測試人員的狀態——他們是否接受了邀請以及是否下載了應用程序。
測試人員有 30 天的時間在應用程序過期前接受測試邀請。當邀請距過期還有 5 天時,過期通知會出現在 Firebase 控制台中某個版本的測試人員旁邊。可以通過使用測試人員行上的下拉菜單重新發送邀請來更新邀請。
下一步
訪問Android App Bundle 代碼實驗室,了解如何逐步分發 App Bundle 版本。