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

本指南介紹如何使用fastlane將 AAB 構建分發給測試人員,fastlane 是一個開源平台,可自動構建和發布 iOS 和 Android 應用程序。它遵循Fastfile中定義的簡單指令。設置 fastlane 和您的Fastfile ,您可以將 App Distribution 與您的 fastlane 配置集成。

要遵循本指南,您需要滿足以下先決條件:訪問 Firebase 項目(所有者Firebase 管理員)、訪問 Google Play 開發者帳戶(所有者或管理員)以及在 Google Play 中處於已發布狀態的應用。

關於分發 Android App Bundle

App Distribution 與 Google Play 的內部應用共享服務集成,以處理您上傳的 AAB 並提供針對測試人員的設備配置進行了優化的 APK。分發 AAB 時,您可以:

  • 運行針對測試人員的設備進行了優化的優化 APK(由 Google Play 提供)。
  • 發現和調試特定於設備的問題。
  • 測試應用程序包功能,例如Play 功能交付Play 資產交付
  • 減少測試人員的下載量。

在你開始之前

  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 控制台中,轉到您的 Project settings ,然後選擇Integrations選項卡。

    2. Google Play卡上,點擊鏈接
      如果您已有指向 Google Play 的鏈接,請改為單擊“管理”。

    3. 按照屏幕上的說明啟用 App Distribution 集成並選擇要鏈接到 Google Play 的 Firebase Android 應用。

    了解有關鏈接到 Google Play 的更多信息。

步驟 1. 設置快車道

  1. 安裝並設置 fastlane

  2. 要將 App Distribution 添加到您的 fastlane 配置中,請從您的 Android 項目的根目錄運行以下命令:

    fastlane add_plugin firebase_app_distribution

    如果命令提示您一個選項,請選擇Option 3: RubyGems.org

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

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

第 3 步:設置您的 Fastfile 並分發您的應用程序

  1. ./fastlane/Fastfile通道中,添加一個firebase_app_distribution塊。使用以下參數配置分佈:
    firebase_app_distribution 參數
    app

    必需:您的應用的 Firebase 應用 ID。您可以在 Firebase 控制台的“常規設置”頁面上找到應用 ID。

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

    當您運行插件的登錄操作(請參閱上面的使用 Google 帳戶進行身份驗證)或使用 Firebase CLI 對 CI 環境進行身份驗證時打印的刷新令牌(有關更多信息,請閱讀將 CLI 與 CI 系統一起使用)。

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

分發構建後,它會在 Firebase 控制台的應用分發信息中心中提供 150 天。當構建距離到期 30 天時,控制台和測試人員在其測試設備上的構建列表中會顯示到期通知。

之前未受邀測試應用程序的測試人員會收到電子郵件邀請以開始測試。現有測試人員會收到電子郵件通知,表明新版本已準備好進行測試。要了解如何安裝測試應用程序,請參閱測試儀設置指南。您可以監控每個測試人員的狀態,以確定他們是否接受了邀請以及是否在 Firebase 控制台中下載了應用。

(可選)要在每次在 App Distribution 中創建新版本時自動增加內部版本號,您可以使用firebase_app_distribution_get_latest_release操作,例如increment_version_code fastlane 插件。以下代碼提供瞭如何自動增加內部版本號的示例:

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文件或直接運行 fastlane 操作在您的應用版本中添加和刪除測試人員。運行操作會直接覆蓋Fastfile中設置的值。

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

使用Fastfile

# Use lanes to add or remove testers from an app release.
lane(:add_testers) do
  firebase_app_distribution_add_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
  )
end

lane(:remove_testers) do
  firebase_app_distribution_remove_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
  )
end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers

運行快車道操作

fastlane run firebase_app_distribution_add_testers emails:"foo@google.com,bar@google.com"

fastlane run firebase_app_distribution_remove_testers emails:"foo@google.com,bar@google.com"

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

firebase_app_distribution_add_testersfirebase_app_distribution_remove_testers任務也接受以下參數:

  • project_name :您的 Firebase 項目編號。
  • service_credentials_file :您的 Google 服務憑證文件的路徑。
  • firebase_cli_token :Firebase CLI 的身份驗證令牌。

service_credentials_filefirebase_cli_token是上傳操作使用的相同參數。

步驟 5(可選)。獲取有關您的應用最新版本的信息

您可以使用firebase_app_distribution_get_latest_release操作在 App Distribution 中獲取有關您應用的最新版本的信息,包括應用版本信息、發行說明和創建時間。用例包括自動增加版本和繼承前一版本的發行說明。

操作的返回值是代表最新版本的哈希。此哈希也可使用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

當您運行插件的登錄操作(請參閱上面的使用 Google 帳戶進行身份驗證)或使用 Firebase CLI 對 CI 環境進行身份驗證時打印的刷新令牌(有關更多信息,請閱讀將 CLI 與 CI 系統一起使用)。

service_credentials_file

您的 Google 服務帳戶 json 文件的路徑。有關如何使用服務帳戶憑據進行身份驗證的信息,請參見上文。

debug

一個布爾標誌。您可以將其設置為true以打印詳細的調試輸出。