使用 Gradle 將 Android 應用程式發布給測試人員


您可以使用下列程式,將 App Distribution 整合至 Android 建構程序 App Distribution Gradle 外掛程式。外掛程式可讓您指定測試人員 應用程式 Gradle 檔案中的版本資訊,可讓您設定發布版本 為應用程式的不同建構類型和變化版本設定。

本指南將說明如何使用 App Distribution Gradle 外掛程式。

事前準備

如果您尚未將 Firebase 新增至 Android,請先完成這項操作。 專案

如果您沒有使用其他 Firebase 產品,只要建立 並註冊應用程式不過,如果您決定使用額外的 在日後推出產品時,請務必完成本頁列出的所有步驟 。

步驟 1:設定 Android 專案

  1. 在您的根層級 (專案層級) 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
    }
    
  2. 在「module (應用程式層級)」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'
    }
    
  3. 如果您使用公司 Proxy 或防火牆,請新增以下指令 Java 系統屬性 可讓 App Distribution 將您的發行內容上傳至 Firebase:

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    
,瞭解如何調查及移除這項存取權。

步驟 2:透過 Firebase 驗證

使用此 Gradle 外掛程式之前,您必須先使用 您可透過下列其中一種方式處理 Firebase 專案。根據預設,Gradle 外掛程式 如果沒有其他驗證,則會尋找 Firebase CLI 提供的憑證 方法。

步驟 3:設定發布屬性

在「module (應用程式層級)」Gradle 檔案中 (通常是 <project>/<app-module>/build.gradle.kts<project>/<app-module>/build.gradle) 設定 App Distribution,方法是在 有一個 firebaseAppDistribution 區段。

舉例來說,如要將 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 「建構類型和變種版本」

舉例來說,如要在「試用版」中發布 debugrelease 版本和「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 外掛程式。您可以在 google-services.json 檔案,或 上的 Firebase 控制台 「一般設定」頁面build.gradle中的值 檔案會覆寫來自 google-services 的輸出值 外掛程式。

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

服務帳戶私密金鑰 JSON 檔案的路徑。僅限必要 如果您使用服務帳戶驗證

artifactType

指定應用程式的檔案類型。可設為 "AAB""APK"

artifactPath

要上傳 APK 或 AAB 檔案的絕對路徑。

releaseNotesreleaseNotesFile

這個版本的版本資訊。

您可以直接指明版本資訊,也可以採用 提供純文字檔的路徑

testerstestersFile

您要發布版本的測試人員電子郵件地址 。

可以使用以半形逗號分隔的電子郵件清單指定測試人員 地址:

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

或者,您可以指定檔案路徑 電子郵件地址清單:

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

您要發布版本的測試人員群組 (請參閱 管理測試人員)。 群組是使用「群組別名」指定,您可以使用群組別名 只要前往 Firebase 的「測試人員」分頁,即可輕鬆找到 App Distribution 控制台。

可以使用以半形逗號分隔的群組清單來指定群組 別名:

groups="qa-team, android-testers"

或者,您可以指定檔案路徑 群組別名清單:

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

下列發布類型屬於自動化測試人員 Beta 版功能

要發布版本的測試裝置 (請參閱「自動化測試」)。

您可以將測試裝置指定為以半形分號分隔的清單 裝置規格:

testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

或者,您可以指定檔案路徑 裝置規格清單:

testDevicesFile="/path/to/testDevices.txt"
testUsername

用於自動測試期間自動登入的使用者名稱。

testPasswordtestPasswordFile

自動登入用於自動測試的密碼。

或者,您可以指定含有密碼的純文字檔案路徑:

testPasswordFile="/path/to/testPassword.txt"
testUsernameResource

用於自動測試期間自動登入的使用者名稱欄位的資源名稱。

testPasswordResource

密碼欄位的資源名稱,供自動測試使用。

testNonBlocking

以非同步方式執行自動化測試。前往 Firebase 控制台查看自動測試結果。

stacktrace

輸出使用者例外狀況的堆疊追蹤。這很適合用來 偵錯問題。

步驟 4:將應用程式發布給測試人員

  1. 最後,如要封裝測試應用程式並邀請測試人員,請建立目標 「BUILD-VARIANT」和 將appDistributionUploadBUILD-VARIANT分享給 專案的 Gradle 包裝函式,其中 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. 您也可以傳遞以下訊息,以覆寫 build.gradle 檔案中設定的值: 指令列引數的形式 --<property-name>=<property-value>。例如:

    • 如何將偵錯版本上傳至 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 服務憑證檔案的路徑。 這是上傳動作使用的相同引數。

Gradle 外掛程式會在發布版本上傳後輸出下列連結。這些 連結可協助您管理二進位檔,並確保測試人員和其他開發人員 正確的版本:

  • firebase_console_uri - 連結至 Firebase 控制台,其中顯示 單曲發布。您可以透過 機構。
  • testing_uri - 測試人員體驗中的版本連結 (Android 原生應用程式),可供測試人員查看版本 ,並在裝置上安裝這個應用程式。測試人員需要下列項目的存取權: 才能使用連結。
  • binary_download_uri - 已簽署的連結,可直接下載 安裝應用程式二進位檔 (APK 或 AAB 檔案)。連結將於一後失效 小時。

版本發布後, Firebase 控制台的 App Distribution 資訊主頁,長達 150 天 (五個月)。 如果版本到期 30 天,兩個版本都會顯示到期通知 測試裝置上的控制台和測試人員的版本清單。

測試人員會收到電子郵件邀請,但尚未受邀測試應用程式 新的版本,現有測試人員會收到新版本的電子郵件通知 可供測試 (閱讀 測試人員設定指南 瞭解如何安裝測試 應用程式)。您可以監控每位測試人員的狀態,確認他們是否接受 邀請,以及對方是否已在 Firebase 控制台中下載應用程式。

在過期前,測試人員有 30 天可以接受邀請,接受邀請。 如果邀請過期的 5 天,系統會在 版本測試人員旁邊的 Firebase 控制台。邀請可以是 使用測試人員列的下拉式選單重新傳送更新。

後續步驟