使用 Quicklane 向測試人員發布 iOS 應用程式

您可以使用 fastlane 將建構版本發布給測試人員。這是一個開放原始碼平台,可自動建構及發布 iOS 和 Android 應用程式。它會遵循 Fastfile 中定義的簡單指令。設定 fastlane 和 Fastfile 後,即可將 App Distribution 與 fastlane 設定整合。

步驟 1:設定 fastlane

  1. 安裝及設定 fastlane

  2. 如要將 App Distribution 新增至 fastlane 設定,請從 iOS 專案的根目錄執行下列指令:

    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 設定檔 (GoogleService-Info.plist) 時才需要:應用程式的 Firebase 應用程式 ID。您可以在 Firebase 控制台的「General Settings」(一般設定) 頁面中找到應用程式 ID。

    app: "1:1234567890:ios:0a1b2c3d4e5f67890"
    googleservice_info_plist_path

    GoogleService-Info.plist 檔案的路徑,相對於封存產品路徑。預設為 GoogleService-Info.plist

    如果未指定 app 參數,系統會使用這個檔案取得應用程式的 Firebase 應用程式 ID。

    firebase_cli_token

    使用 Firebase CLI 驗證 CI 環境時列印的重新整理權杖 (詳情請參閱「將 CLI 與 CI 系統搭配使用」)。

    service_credentials_file

    Google 服務帳戶 JSON 檔案的路徑。如要瞭解如何使用服務帳戶憑證進行驗證,請參閱上文。

    ipa_path

    取代已淘汰的 apk_path。要上傳的 IPA 檔案絕對路徑。如未指定,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 :ios do
    desc "My awesome app"
    lane :distribute do
        build_ios_app(...)
        # build_ios_app is a built-in fastlane action.

        release = firebase_app_distribution(
            app: "1:123456789:ios:abcd1234",
            testers: "tester1@company.com, tester2@company.com",
            release_notes: "Lots of amazing new features to test out!"
        )

    end
end

如要將建構版本提供給測試人員,請執行通道:

fastlane <lane>

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

發布版本上傳完成後,fastlane 外掛程式會輸出下列連結。您可以透過這些連結管理二進位檔,並確保測試人員和其他開發人員取得正確版本:

  • 連結至 Firebase 控制台,顯示單一版本。您可以將這個連結分享給貴機構的其他開發人員。
  • 測試人員體驗中的版本連結 (iOS 網頁剪輯片段),可讓測試人員查看版本說明,並在裝置上安裝應用程式。測試人員必須有權存取版本,才能使用連結。
  • 已簽署的連結,可直接下載及安裝應用程式二進位檔 (IPA 檔案)。連結將於一小時後失效。

發布建構版本後,該版本會在��控制台的資訊主頁中保留 150 天。App DistributionFirebase如果建構版本即將在 30 天後過期,控制台和測試人員測試裝置上的建構版本清單中,都會顯示過期通知。

如果測試人員先前未受邀測試應用程式,他們會收到電子郵件邀請,現有測試人員會收到電子郵件通知,告知他們已可測試新版本。如要瞭解如何安裝測試版應用程式,請參閱「成為測試人員」。您可以在 Firebase 控制台中監控每位測試人員的狀態,判斷他們是否接受邀請及下載應用程式。

(選用) 如要在應用程式發布中建立新版本時自動遞增建構版本號碼,可以使用 firebase_app_distribution_get_latest_release 動作和 increment_build_number 動作。 以下程式碼範例說明如何自動遞增建構編號:

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

如要進一步瞭解這項 fastlane 外掛程式功能,請參閱「取得應用程式最新版本的相關資訊」。

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

您可以使用 Fastfile 檔案或直接執行 fastlane 動作,在專案或群組中新增及移除測試人員。直接執行動作會覆寫 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

執行 fastlane 動作

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_tokenFirebase 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 設定檔 (GoogleService-Info.plist) 時才需要:應用程式的 Firebase 應用程式 ID。您可以在 Firebase 控制台的「General Settings」(一般設定) 頁面中找到應用程式 ID。

app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path

GoogleService-Info.plist 檔案的路徑,相對於封存產品路徑。預設為 GoogleService-Info.plist

如果未指定 app 參數,系統會使用這個檔案取得應用程式的 Firebase 應用程式 ID。

firebase_cli_token

使用 Firebase CLI 驗證 CI 環境時列印的重新整理權杖 (詳情請參閱「將 CLI 與 CI 系統搭配使用」)。

service_credentials_file

Google 服務帳戶 JSON 檔案的路徑。如要瞭解如何使用服務帳戶憑證進行驗證,請參閱先前的說明文件。

service_credentials_json_data

Google 服務帳戶 JSON 檔案內容。如要瞭解如何使用服務帳戶憑證進行驗證,請參閱先前的說明文件。

debug

布林值標記。您可以將此值設為 true,列印詳細的偵錯輸出內容。

後續步驟