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

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

本指南說明如何將 Android App Bundle (AAB) 發布給測試人員 運用 App Distribution 外掛程式

「應用程式發布」已與 Google Play 內部應用程式分享服務整合, 處理你上傳並提供針對測試人員最佳化的 APK 裝置設定發布 AAB 可讓您執行下列操作:

  • 執行針對以下項目最佳化的最佳化 APK (由 Google Play 提供) 測試人員裝置。

  • 找出裝置相關問題並進行偵錯。

  • 測試應用程式套件功能,例如 Play Feature DeliveryPlay Asset Delivery 的套件。

  • 請為測試人員縮減下載大小。

所需權限

如要將 AAB 上傳至「應用程式發布」,請將 Firebase 應用程式連結至應用程式 顯示在 Google Play 中。您必須取得必要的存取層級 才能執行這些動作

如果您沒有必要的 Firebase 存取權,可以詢問 Firebase 專案 擁有者透過 Firebase 控制台 IAM 設定。 如果您對 Firebase 專案的存取方式有疑問,請提供: 尋找或指派擁有者、詳閱 「Firebase 專案的權限和存取權」常見問題

下表適用於將 Firebase 應用程式連結至應用程式的做法: 以及上傳 AAB。

在 Firebase 控制台中執行的動作 必要的 IAM 權限 具備必要權限的 IAM 角色 預設 其他必要角色
將 Firebase 應用程式連結至 Google Play 中的應用程式 firebase.playLinks.update 下列其中一個角色: Google Play 開發人員帳戶的存取權 管理員
將 AAB 上傳至「應用程式發布」 firebaseappdistro.releases.update 下列其中一個角色: ––

事前準備

  1. 如果您尚未將 Firebase 新增至 Android,請先完成這項操作。 專案。完成這個工作流程後 Firebase 專案中有 Firebase Android 應用程式。

    如果您沒有使用其他 Firebase 產品,則只需建立 並註冊應用程式如果決定使用額外參數 請務必完成 將 Firebase 新增至您的 Android 專案

  2. 如要建立 Google Play 的 Firebase 連結並上傳 AAB,請確認 應用程式符合下列規定:

    • 已在 Google Play 和 Firebase Android 應用程式中註冊應用程式 使用相同的套件名稱

    • Google Play 中的應用程式已在應用程式中設定 資訊主頁 發行至其中一個 Google Play 測試群組 (內部測試、 封閉測試、公開測試或正式版)。

    • 應用程式在 Google Play 中的審查已完成,並已發布應用程式。 如果「應用程式狀態」欄顯示下列任一項目,表示應用程式已發布 下列狀態:內部測試 (非草稿內部測試)、 封閉測試、公開測試或正式版。

  3. 將 Firebase Android 應用程式連結至 Google Play 開發人員帳戶:

    1. 在 Firebase 控制台中,前往 專案設定、 然後選取「Integrations」分頁標籤。

    2. 按一下「Google Play」資訊卡中的「連結」
      如果已有 Google Play 連結,請按一下「管理」

    3. 按照畫面上的指示啟用應用程式發布功能 整合並選取要連結至 Google 的 Firebase Android 應用程式 遊玩、

    進一步瞭解 連結至 Google Play

步驟 1:設定 Android 專案

  1. 在您的根層級 (專案層級) Gradle 檔案 (<project>/build.gradle.kts<project>/build.gradle),請將 應用程式發布 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 系統屬性 請按照下列步驟,透過「應用程式發布」功能將發行內容上傳至 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) 設定應用程式發布,方法是新增 至少有一個 firebaseAppDistribution 版面

舉例來說,如要將 release 版本發布給測試人員,請按照下列指示操作 操作說明:

Kotlin

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

android {

  // ...

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

  // ...
}

Groovy

android {

  // ...

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

  // ...
}

您可以設定以下應用程式的發布選項: 建構類型和變種版本一文。

舉例來說,如要在「試用版」中發布 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"
          }
      }
  }

  // ...
}

使用下列參數設定分佈:

應用程式發布版本參數
appId

應用程式的 Firebase 應用程式 ID。只有在沒有 已安裝 Google 服務 Gradle 外掛程式。您可以在 google-services.json 檔案,或 透過 GCP 控制台 「一般設定」頁面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 的「測試人員」分頁,即可輕鬆找到 應用程式發布控制台。

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

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 bundleRelease appDistributionUploadRelease
    

    如果您已經使用 Google 帳戶完成驗證 且未在 Gradle 建構檔案中提供憑證,請加入 FIREBASE_TOKEN 變數:

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew bundleRelease appDistributionUploadRelease
    
  2. 您也可以傳遞以下訊息,以覆寫 build.gradle 檔案中設定的值: 指令列引數的形式 --<property-name>=<property-value>。例如:

    • 如何將偵錯版本上傳至「應用程式發布」:

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="AAB"
      
    • 如何邀請其他測試人員,或從 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 控制台的應用程式發布資訊主頁,為期 150 天 (五個月)。 如果版本到期 30 天,兩個版本都會顯示到期通知 測試裝置上的控制台和測試人員的版本清單。

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

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

後續步驟