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

本指南將說明如何使用以下應用程式將 AAB 版本發布給測試人員: Fastlane、 這個開放原始碼平台能夠自動建構及發布 iOS 和 Android 應用程式。它遵循 Fastfile 中定義的簡單指示。設定完成後 車用速線和 Fastfile 可以整合「應用程式發布」功能和車道 此外還會從 0 自動調整資源配置 您完全不必調整資源調度設定

「應用程式發布」已與 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:設定 Fastlane

  1. 安裝並設定 Fastlane

  2. 如要將應用程式發布功能新增至 Quicklane 設定,請執行下列指令 呼叫 Android 專案根目錄中的指令:

    fastlane add_plugin firebase_app_distribution

    如果指令提示您選擇選項,請選取 Option 3: RubyGems.org

步驟 2:透過 Firebase 驗證

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

步驟 3:設定 Fastfile 並發布應用程式

  1. ./fastlane/Fastfile的車道上新增 firebase_app_distribution 區塊。使用下列參數即可 設定發行版:
    firebase_app_distribution 參數
    app

    必要:應用程式的 Firebase 應用程式 ID。個人中心 您可以在 Firebase 控制台中找到應用程式 ID,方法是 一般設定頁面

    app: "1:1234567890:android:0a1b2c3d4e5f67890"
    firebase_cli_token

    使用 Firebase CLI (讀取 搭配使用 CLI 與持續整合系統 的說明)。

    service_credentials_file

    Google 服務帳戶 JSON 檔案的路徑。請參閱上述說明 使用服務帳戶憑證進行驗證

    android_artifact_type

    指定 Android 檔案類型 (APK 或 AAB)。

    android_artifact_path

    取代 apk_path (已淘汰)。通往目標的絕對路徑 要上傳的 APK 或 AAB 檔案。如果 未指定,且 Fastlane 從車道上決定檔案位置 產生檔案所在資料夾

    release_notes
    release_notes_file

    這個版本的版本資訊。

    您可以直接指定版本資訊:

    release_notes: "Text of release notes"

    或指定純文字檔案的路徑:

    release_notes_file: "/path/to/release-notes.txt"
    testers
    testers_file

    邀請對象的電子郵件地址。

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

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

    或者,您可以指定純文字檔案的路徑,該檔案包含 以半形逗號分隔的電子郵件地址清單:

    testers_file: "/path/to/testers.txt"
    groups
    groups_file

    想邀請的測試人員群組 (請參閱 管理測試人員)。 群組是使用「群組別名」指定,您可以使用群組別名 只要在 Firebase 控制台中查詢即可

    可以使用逗號分隔的清單指定群組:

    groups: "qa-team, trusted-testers"

    或者,您可以指定純文字檔案的路徑,該檔案包含 群組名稱清單 (以半形逗號分隔):

    groups_file: "/path/to/groups.txt"
    test_devices
    test_devices_file

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

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

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

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

    或者,您可以指定純文字檔案的路徑,該檔案包含 以半形分號分隔的測試裝置清單:

    test_devices_file: "/path/to/test-devices.txt"
    test_username

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

    test_password
    test_password_file

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

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

    test_password_file: "/path/to/test-password.txt"
    test_username_resource

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

    test_password_resource

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

    test_non_blocking

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

    debug

    布林值標記。您可以將這個選項設為 true 顯示詳細偵錯輸出內容

platform :android do
    desc "My awesome app"
    lane :distribute do
        build_android_app(task: "bundle", ...)
        # build_android_app is a built-in fastlane action.
        release = firebase_app_distribution(
            app: "1:123456789:android:abcd1234",
            testers: "tester1@company.com, tester2@company.com",
            release_notes: "Lots of amazing new features to test out!",
            android_artifact_type: "AAB"
        )
    end
end

為了讓測試人員使用版本,請採取以下行動:

fastlane <lane>

動作的傳回值是代表已上傳版本的雜湊。 也可透過 lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] 使用這個雜湊。 如要進一步瞭解這個雜湊中的可用欄位,請參閱 REST API 說明文件

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

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

發布版本之後,即可在 Firebase 控制台的應用程式發布資訊主頁 150 天。 如果版本到期 30 天,系統會在以下時間過後顯示到期通知: ,以及測試人員的測試版本清單中。

先前未受邀測試應用程式的測試人員會收到電子郵件 即可開始使用。現有測試人員會收到電子郵件通知 新的版本已可進行測試如要瞭解如何安裝測試應用程式, 請參閱測試人員設定指南。您可以監控 每位測試人員的狀態,以便判斷他們是否接受 以及他們是否下載了應用程式 Firebase 控制台。

(選用) 如要在每次建立時自動增加版本號碼 建議您使用 firebase_app_distribution_get_latest_release 個動作 例如 increment_version_codeFastlane 外掛程式。 以下程式碼範例說明如何自動將 版本號碼:

lane :increment_version do
  latest_release = firebase_app_distribution_get_latest_release(
    app: "<your Firebase app ID>"
  )
  increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end

如要進一步瞭解 firebase_app_distribution_get_latest_release 動作, 請參閱「取得應用程式最新版本的相關資訊」。

步驟 4 (選用)。管理發行版本的測試人員

你可以使用Fastfile來為專案或群組新增及移除測試人員 檔案或直接執行 auto 車道動作。直接執行動作 這會覆寫 Fastfile 中設定的值。

將測試人員新增至 Firebase 專案後,你就可以將測試人員新增至專案: 和個別版本從 Firebase 專案中移除的測試人員否 無法存取專案中的版本 有一段時間試用新版本

如果您需要大量測試人員,建議使用群組。

使用 Fastfile

# Use lanes to add or remove testers from a project.
lane(:add_testers) do
  firebase_app_distribution_add_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
    group_alias: "qa-team" # (Optional) add testers to this group
  )
end

lane(:remove_testers) do
  firebase_app_distribution_remove_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
    group_alias: "qa-team" # (Optional) remove testers from this group only
  )
end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers

執行 Quicklane 動作

fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"

您也可以使用 --file="/path/to/testers.txt 指定測試人員,而不使用 --emails

firebase_app_distribution_add_testersfirebase_app_distribution_remove_testers 項工作也接受下列工作 引數:

  • project_name:您的 Firebase 專案編號。
  • group_alias (選用):系統會將測試人員新增至 (或從中移除): 指定的群組。
  • service_credentials_file:Google 服務憑證檔案的路徑。
  • firebase_cli_token:Firebase CLI 的授權權杖。

service_credentials_filefirebase_cli_token 相同 上傳動作所使用的引數。

步驟 5 (選用)。取得應用程式最新版本的相關資訊

你可以使用「firebase_app_distribution_get_latest_release」動作 ,針對「應用程式發布」中的最新應用程式版本擷取相關資訊。 包括應用程式版本資訊、版本資訊和建立時間用途 包括自動擴充版本並保留 以及先前版本的版本資訊

動作的傳回值是代表最新版本的雜湊。 也可透過 lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] 使用這個雜湊。 如要進一步瞭解這個雜湊中的可用欄位,請參閱 REST API 說明文件

參數

firebase_app_distribution_get_latest_release 參數
app

必要:應用程式的 Firebase 應用程式 ID。個人中心 您可以在 Firebase 控制台中找到應用程式 ID,方法是 一般設定頁面

app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token

使用 Firebase CLI (讀取 搭配使用 CLI 與持續整合系統 的說明)。

service_credentials_file

Google 服務帳戶 JSON 檔案的路徑。請參閱上述說明 使用服務帳戶憑證進行驗證

debug

布林值標記。您可以將這個選項設為 true 顯示詳細偵錯輸出內容

後續步驟