Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

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

在你開始之前

如果你還沒有,添加火力地堡到您的Android項目

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

第 1 步。設置您的 Android 項目

  1. 在項目級搖籃文件(一般android/build.gradle ),添加應用程序分發插件作為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:2.2.0'
        }
    }
    
  2. 在您的應用程序級的搖籃文件(一般android/app/build.gradle ),包括Android插件下方的應用發布插件:

    apply plugin: 'com.android.application'
    // ...
    
    // Apply the App Distribution Gradle plugin
    apply plugin: 'com.google.firebase.appdistribution'
    // ...
    
  3. 如果你落後企業的代理服務器或防火牆,添加以下Java系統屬性,它使應用程序分發到您的分發上傳到火力地堡:

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

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

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

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

  1. 在您的app/build.gradle文件,配置應用程序分發通過添加至少一個firebaseAppDistribution部分。例如,在分發release構建測試人員:

    android {
    
        // ...
    
        buildTypes {
            release {
                firebaseAppDistribution {
                    artifactType="APK"
                    releaseNotesFile="/path/to/releasenotes.txt"
                    testers="ali@example.com, bri@example.com, cal@example.com"
                }
            }
        }
    
        // ...
    }
    
  2. 應用發布可配置為構建類型和產品的口味。例如,分配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 服務 Gradle 插件時才需要。您可以在中找到應用ID google-services.json文件或在火力地堡控制台常規設置頁面。在你的價值build.gradle文件覆蓋從輸出值google-services插件。

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

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

artifactType

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

apkPath

此參數現已棄用。使用artifactPath代替。

artifactPath

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

releaseNotesreleaseNotesFile

此版本的發行說明。

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

testerstestersFile

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

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

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

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

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

要分發的測試組建立到(見管理測試)。使用指定的組組別名,您可以在火力地堡應用程序分配控制台的測試人員標籤中找到。

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

groups="qa-team, android-testers"

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

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

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

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

  1. 最後,封裝測試應用,並邀請測試人員,建立目標BUILD-VARIANTappDistributionUpload BUILD-VARIANT在項目的搖籃包裝,其中BUILD-VARIANT的是你在上一步中配置的可選產品風味和構建類型。有關產品的口味的更多信息,請參閱配置構建變種

    例如,使用發布應用程式release構建變量,運行以下命令:

    ./gradlew assembleRelease appDistributionUploadRelease
    

    或者,如果你與你的身份驗證的谷歌帳戶,並在您的搖籃構建文件沒有提供憑據,包括FIREBASE_TOKEN變量:

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew assembleRelease appDistributionUploadRelease
    
  2. 您還可以覆蓋在你設定的值build.gradle通過將命令行參數的形式文件-PappDistribution-<property-name>=<property-value> 。例如:

    • 要將調試版本上傳到 App Distribution:

      ./gradlew bundleDebug appDistributionUploadDebug
          -PappDistribution-artifactType="APK"
      
    • 要邀請其他測試人員或從您的 Firebase 項目中移除現有測試人員:

      ./gradlew bundleDebug appDistributionAddTesters
          --emails="anothertester@email.com, moretesters@email.com"
       ./gradlew appDistributionRemoveTesters
           --emails="anothertester@email.com, moretesters@email.com"
      

      將測試人員添加到您的 Firebase 項目後,您可以將其添加到各個版本中。被移除的測試人員將無法再訪問您項目中的版本,但可能仍會在一段時間內保留對您的版本的訪問權限。

    您還可以指定使用測試--file="/path/to/testers.txt"代替--emails

    appDistributionAddTestersappDistributionRemoveTesters任務也接受以下參數:

    • projectNumber :您的火力地堡項目編號。

    • serviceCredentialsFile :你的谷歌服務的憑證文件的路徑。這與上傳操作使用的參數相同。

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

誰沒有被邀請來測試應用程序測試人員收到電子郵件邀請上手,而且現有的測試人員收到電子郵件通知,一個新的版本是準備測試(讀取測試儀設立指導如何安裝測試程序的說明)。您可以在 Firebase 控制台中監控每個測試人員的狀態——他們是否接受了邀請以及他們是否下載了應用程序。

測試人員有 30 天的時間接受邀請以在應用程序到期之前對其進行測試。當邀請距到期還有 5 天時,Firebase 控制台中會在發布的測試人員旁邊顯示到期通知。可以通過使用測試人員行上的下拉菜單重新發送邀請來續訂邀請。

下一步

訪問Android應用程序包代碼實驗室學習如何分發應用程序包的版本一步一步來。