您可以使用 App Distribution Gradle 外掛程式,將 App Distribution 整合至 Android 建構程序。外掛程式可讓您在應用程式的 Gradle 檔案中指定測試人員和發布說明,讓您為應用程式的不同建構類型和變化版本設定發行版本。
本指南說明如何使用 App Distribution Gradle 外掛程式,將 APK 發布給測試人員。
事前準備
如果您尚未將 Firebase 新增至 Android 專案,請新增 Firebase。
如果您不使用任何其他 Firebase 產品,只需建立專案並註冊應用程式即可。不過,如果您日後決定使用其他產品,請務必完成上述連結網頁上的所有步驟。
步驟 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 = "APK" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Groovy
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="APK" 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 assembleRelease appDistributionUploadRelease
或者,如果您使用 Google 帳戶進行驗證,但未在 Gradle 建構檔案中提供憑證,請加入
FIREBASE_TOKEN
變數:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew assembleRelease appDistributionUploadRelease
您也可以透過
--<property-name>=<property-value>
格式傳遞指令列引數,覆寫build.gradle
檔案中設定的值。例如:如要將偵錯版本上傳至 App Distribution,請按照下列步驟操作:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="APK"
如要在 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 應用程式發送給品質確查人員的最佳做法。