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

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

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

在你開始之前

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

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

步驟 1. 設置您的 Android 項目

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

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

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

在您可以使用 Gradle 插件之前,您必須首先對您的 Firebase 項目進行身份驗證。有三種方法可以實現這一點:

步驟 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 版本。