Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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

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

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

在你開始之前

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

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

步驟 1. 設置快車道

  1. 安裝並設置 fastlane

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

    fastlane add_plugin firebase_app_distribution

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

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

在您可以使用 fastlane 插件之前,您必須首先通過以下方式之一對您的 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

    當您運行插件的登錄操作(請參閱上面的使用 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(...)
        # 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!"
        )
    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以打印詳細的調試輸出。