Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

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

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

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

在你開始之前

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

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

步驟 1. 設置您的 Android 項目

  1. 在您的根級(項目級) Gradle 文件( <project>/build.gradle<project>/build.gradle.kts )中,將 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.1.1'
      }
    }
    

    科特林

    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.1.1")
      }
    }
    
  2. 在您的模塊(應用級) Gradle 文件(通常是<project>/<app-module>/build.gradle<project>/<app-module>/build.gradle.kts )中,添加 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'
    }
    

    科特林

    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. 配置您的分發屬性

在您的模塊(應用程序級) Gradle 文件(通常是<project>/<app-module>/build.gradle<project>/<app-module>/build.gradle.kts )中,通過添加至少一個firebaseAppDistribution部分。

例如,要將release版本分發給測試人員,請遵循以下說明:

時髦的

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="APK"
              releaseNotesFile="/path/to/releasenotes.txt"
              testers="ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

科特林

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType = "APK"
              releaseNotesFile = "/path/to/releasenotes.txt"
              testers = "ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

您可以為構建類型和產品風格配置 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"
          }
      }
  }

  // ...
}

科特林

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"
          }
      }
  }

  // ...
}

使用以下參數配置分佈:

應用分發構建參數
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 控制台中某個版本的測試人員旁邊。可以通過使用測試人員行上的下拉菜單重新發送邀請來更新邀請。

下一步