Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

使用 Gradle 將 Android 應用分發給測試人員

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

您可以使用 App Distribution Gradle 插件將 App Distribution 集成到您的 Android 構建過程中。該插件允許您在應用程序的build.gradle文件中指定測試人員和發行說明,讓您可以為應用程序的不同構建類型和變體配置分發。

本指南介紹如何使用 App Distribution Gradle 插件將 APK 分發給測試人員。

在你開始之前

如果您還沒有,請將 Firebase 添加到您的 Android 項目中。

如果您不使用任何其他 Firebase 產品,您只需創建一個項目並註冊您的應用。但是,如果您決定將來使用其他產品,請務必完成上面鏈接頁面上的所有步驟。

步驟 1. 設置您的 Android 項目

  1. 在您的根級(項目級) Gradle 文件 ( <project>/build.gradle ) 中,將 App Distribution Gradle 插件添加為 buildscript 依賴項:

    buildscript {
        repositories {
          // Make sure that you have the following two repositories
          google()  // Google's Maven repository
          mavenCentral()  // Maven Central repository
        }
    
        dependencies {
            ...
            classpath 'com.android.tools.build:gradle:7.2.0'
    
            // Make sure that you have the Google services Gradle plugin dependency
            classpath 'com.google.gms:google-services:4.3.14'
    
            // Add the dependency for the App Distribution Gradle plugin
            classpath 'com.google.firebase:firebase-appdistribution-gradle:3.0.3'
        }
    }
  2. 在您的模塊(應用級) Gradle 文件(通常是<project>/<app-module>/build.gradle )中,添加 App Distribution Gradle 插件:

    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'
        ...
    }
  3. 如果您位於公司代理或防火牆後面,請添加以下Java 系統屬性,以使 App Distribution 能夠將您的分配上傳到 Firebase:

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

第 2 步:使用 Firebase 進行身份驗證

在您可以使用 Gradle 插件之前,您必須首先通過以下方式之一對您的 Firebase 項目進行身份驗證。默認情況下,如果沒有使用其他身份驗證方法,Gradle 插件會從 Firebase CLI 中查找憑據。

步驟 3. 配置您的分發屬性

  1. 在您的app/build.gradle文件中,通過添加至少一個firebaseAppDistribution部分來配置 App Distribution。例如,要將release版本分發給測試人員:

    android {
    
        // ...
    
        buildTypes {
            release {
                firebaseAppDistribution {
                    artifactType="APK"
                    releaseNotesFile="/path/to/releasenotes.txt"
                    testers="ali@example.com, bri@example.com, cal@example.com"
                }
            }
        }
    
        // ...
    }
    
  2. App Distribution 可以針對構建類型和產品風格進行配置。例如,要以“演示”和“完整”產品風格分發debugrelease版本:

    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"
              }
          }
        }
    
        // ...
    }
    
  3. 使用以下參數配置分佈:

應用分發構建參數
appId

您應用的 Firebase 應用 ID。僅當您沒有安裝 Google Services Gradle 插件時才需要。您可以在google-services.json文件或 Firebase 控制台的常規設置頁面中找到應用 ID。 build.gradle文件中的值會覆蓋google-services插件的輸出值。

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

您的服務帳號私鑰 JSON 文件的路徑。僅當您使用服務帳戶身份驗證時才需要。

artifactType

指定應用的文件類型。可以設置為"AAB""APK"

artifactPath

要上傳的 APK 或 AAB 文件的絕對路徑。

releaseNotesreleaseNotesFile

此版本的發行說明。

您可以直接指定發行說明,也可以指定純文本文件的路徑。

testers或測試人員testersFile

您要將構建分發到的測試人員的電子郵件地址。

您可以將測試人員指定為以逗號分隔的電子郵件地址列表:

testers="ali@example.com, bri@example.com, cal@example.com"

或者,您可以指定包含以逗號分隔的電子郵件地址列表的文件的路徑:

testersFile="/path/to/testers.txt"
groupsgroupsFile

您要將構建分發到的測試人員組(請參閱管理測試人員)。組使用指定組別名,您可以在 Firebase 應用分發控制台的“測試人員”選項卡中找到它。

您可以將組指定為以逗號分隔的組別名列表:

groups="qa-team, android-testers"

或者,您可以指定包含逗號分隔的組別名列表的文件的路徑:

groupsFile="/path/to/tester-groups.txt"
stacktrace

打印出用戶異常的堆棧跟踪。這在調試問題時很有幫助。

第 4 步:將您的應用分發給測試人員

  1. 最後,要打包您的測試應用並邀請測試人員,請使用項目的 Gradle 包裝器構建目標BUILD-VARIANTappDistributionUpload BUILD-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
    
  2. 您還可以通過以--<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指定測試人員。

    appDistributionAddTestersappDistributionRemoveTesters任務也接受以下參數:

    • projectNumber :您的 Firebase 項目編號。

    • serviceCredentialsFile :您的 Google 服務憑據文件的路徑。這與上傳操作使用的參數相同。

分發構建後,它會在 Firebase 控制台的 App Distribution 儀表板中可用 150 天(五個月)。當構建距離到期 30 天時,控制台和測試人員在其測試設備上的構建列表中都會顯示到期通知。

未受邀測試應用程序的測試人員會收到電子郵件邀請以開始使用,現有測試人員會收到電子郵件通知,表明新版本已準備好進行測試(請閱讀測試人員設置指南以獲取有關如何安裝測試應用程序的說明)。您可以在 Firebase 控制台中監控每個測試人員的狀態——他們是否接受了邀請以及是否下載了應用程序。

測試人員有 30 天的時間在應用程序過期前接受測試邀請。當邀請距過期還有 5 天時,過期通知會出現在 Firebase 控制台中某個版本的測試人員旁邊。可以通過使用測試人員行上的下拉菜單重新發送邀請來更新邀請。

下一步

訪問Android App Bundle 代碼實驗室,了解如何逐步分發 App Bundle 版本。