您可以使用 App Distribution Gradle 外掛程式,將 App Distribution 整合至 Android 建構程序。外掛程式可讓您在應用程式的 Gradle 檔案中指定測試人員和發布說明,讓您為應用程式的不同建構類型和變化版本設定發行版本。
本指南說明如何使用 App Distribution Gradle 外掛程式,將 Android App Bundle (AAB) 發布給測試人員。
App Distribution 會整合 Google Play 的內部應用程式分享服務,處理您上傳的 AAB,並提供針對測試人員裝置設定最佳化的 APK。您可以透過發布 AAB 來執行下列操作:
執行經過最佳化的 APK (由 Google Play 提供),這些 APK 已針對測試人員的裝置進行最佳化。
找出並修正裝置相關問題。
測試應用程式套件功能,例如 Play Feature Delivery 和 Play Asset Delivery。
縮減測試人員的下載檔案大小。
所需權限
如要將 AAB 上傳至 App Distribution,您必須將 Firebase 應用程式連結至 Google Play 中的應用程式。您必須具備必要的存取層級才能執行這些動作。
如果您沒有必要的 Firebase 存取權,可以要求 Firebase 專案擁有者透過 Firebase 控制台的身分與存取權管理設定,指派適用的角色給您。如果您對存取 Firebase 專案有任何疑問,包括尋找或指派擁有者,請參閱 「Firebase 專案的權限和存取權」常見問題。
下表適用於將 Firebase 應用程式連結至 Google Play 中的應用程式,以及上傳 AAB。
在 Firebase 控制台中執行的動作 | 必要的 IAM 權限 | 預設包含必要權限的 IAM 角色 | 其他必要角色 |
---|---|---|---|
將 Firebase 應用程式連結至 Google Play 中的應用程式 | firebase.playLinks.update
|
下列其中一個角色: | 以管理員身分存取 Google Play 開發人員帳戶 |
將 AAB 上傳至 App Distribution | firebaseappdistro.releases.update
|
下列其中一個角色: | –– |
事前準備
如果您尚未將 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 控制台中,前往「專案設定」
,然後選取「整合」分頁標籤。 按一下「Google Play」資訊卡中的「連結」。
如果你已取得 Google Play 連結,請改為點選「管理」。按照畫面上的指示啟用 App Distribution 整合功能,並選取要連結至 Google Play 的 Firebase Android 應用程式。
進一步瞭解如何連結至 Google Play。
步驟 1:設定 Android 專案
在根層級 (專案層級) Gradle 檔案 (
<project>/build.gradle.kts
或<project>/build.gradle
) 中,將 App Distribution Gradle 外掛程式新增為依附元件:Kotlin
plugins { // ... id("com.android.application") version "7.3.0" apply false // Make sure that you have the Google services Gradle plugin dependency id("com.google.gms.google-services") version "4.4.2" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "5.0.0" apply false }
Groovy
plugins { // ... id 'com.android.application' version '7.3.0' apply false // Make sure that you have the Google services Gradle plugin dependency id 'com.google.gms.google-services' version '4.4.2' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '5.0.0' apply false }
在模組 (應用程式層級) Gradle 檔案 (通常是
<project>/<app-module>/build.gradle.kts
或<project>/<app-module>/build.gradle
) 中,新增 App Distribution Gradle 外掛程式:Kotlin
plugins { id("com.android.application") // Make sure that you have the Google services Gradle plugin id("com.google.gms.google-services") // Add the App Distribution Gradle plugin id("com.google.firebase.appdistribution") }
Groovy
plugins { id 'com.android.application' // Make sure that you have the Google services Gradle plugin id 'com.google.gms.google-services' // Add the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' }
如果您使用公司 Proxy 或防火牆,請新增下列 Java 系統屬性,讓 App Distribution 能夠將發布內容上傳至 Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
步驟 2:使用 Firebase 進行驗證
您必須先透過下列任一方式驗證 Firebase 專案,才能使用 Gradle 外掛程式。根據預設,如果未使用其他驗證方法,Gradle 外掛程式會從 Firebase CLI 尋找憑證。
步驟 3:設定發布屬性
在模組 (應用程式層級) Gradle 檔案 (通常為 <project>/<app-module>/build.gradle.kts
或 <project>/<app-module>/build.gradle
) 中,新增至少一個 firebaseAppDistribution
區段,藉此設定 App Distribution。
例如,如要將 release
版本發布給測試人員,請按照下列操作說明操作:
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("release") { firebaseAppDistribution { artifactType = "AAB" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Groovy
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
建構版本發布至「demo」和「full」變種版本,請按照下列操作說明進行:
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("debug") {...} getByName("release") {...} } flavorDimensions += "version" productFlavors { create("demo") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for demo version" testers = "demo@testers.com" } } create("full") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for full version" testers = "full@testers.com" } } } // ... }
Groovy
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" } } } // ... }
請使用下列參數設定發布作業:
App Distribution 建構參數 | |
---|---|
appId
|
應用程式的 Firebase 應用程式 ID。只有在您未安裝 Google 服務 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" |
testDevices 或testDevicesFile |
以下發布類型屬於 自動測試人員 Beta 版功能。 您要將版本發布的測試裝置 (請參閱「自動化測試」)。 您可以將測試裝置指定為裝置規格清單,並以分號分隔: testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait" 或者,您也可以指定包含以分號分隔的裝置規格清單的檔案路徑: testDevicesFile="/path/to/testDevices.txt" |
testUsername |
在自動化測試期間用於自動登入的使用者名稱。 |
testPassword 或testPasswordFile |
在自動化測試期間用於自動登入的密碼。 或者,您也可以指定含有密碼的純文字檔案路徑: testPasswordFile="/path/to/testPassword.txt" |
testUsernameResource |
自動登入時要使用的使用者名稱欄位資源名稱,用於自動化測試。 |
testPasswordResource |
自動登入時用於自動化測試的密碼欄位資源名稱。 |
testNonBlocking |
以非同步方式執行自動化測試。請前往 Firebase 控制台查看自動化測試結果。 |
stacktrace
|
列印使用者例外狀況的堆疊追蹤記錄。這在偵錯問題時很有幫助。 |
步驟 4:將應用程式發送給測試人員
最後,如要封裝測試應用程式並邀請測試人員,請使用專案的 Gradle 包裝函式建構目標
BUILD-VARIANT
和appDistributionUploadBUILD-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 服務憑證檔案的路徑。這與上傳動作使用的引數相同。
Gradle 外掛程式會在上傳版本後輸出下列連結。以下連結可協助您管理二進位檔,並確保測試人員和其他開發人員擁有正確的版本:
firebase_console_uri
:連結至 Firebase 控制台,顯示單一版本。您可以將這個連結分享給貴機構的其他開發人員。testing_uri
- 測試人員體驗 (Android 原生應用程式) 中版本的連結,可讓測試人員查看版本附註,並將應用程式安裝到裝置上。測試人員必須有權存取版本,才能使用連結。binary_download_uri
:直接下載及安裝應用程式二進位檔 (APK 或 AAB 檔案) 的已簽署連結。連結將於一小時後失效。
發布版本後,您可以在 Firebase 主控台的 App Distribution 資訊主頁中查看該版本,時間長達 150 天 (五個月)。當建構作業到期日剩下 30 天時,主控台和測試人員的測試裝置建構作業清單都會顯示到期通知。
未受邀測試應用程式的測試人員會收到電子郵件邀請,而現有測試人員則會收到新版本已可測試的電子郵件通知 (請參閱測試人員設定指南,瞭解如何安裝測試應用程式)。您可以在 Firebase 控制台中,監控每位測試人員的狀態,包括他們是否接受邀請,以及是否下載應用程式。
邀請過期前,測試人員有 30 天可以接受邀請,以便測試應用程式。邀請即將在 5 天後到期時,Firebase 控制台會在版本測試人員旁邊顯示到期通知。您可以使用測試人員資料列的下拉式選單,重新傳送邀請,藉此續訂邀請。
後續步驟
實作應用程式內意見回饋,方便測試人員傳送有關應用程式的意見回饋 (包括螢幕截圖)。
瞭解如何在應用程式推出新版本時,向測試人員顯示應用程式內快訊。
請前往 Android App Bundle 程式碼研究室,瞭解如何逐步發布應用程式套件。
瞭解使用 CI/CD 將 Android 應用程式發送給品質確查人員的最佳做法。