您可以使用 fastlane 將版本發布給測試人員,這是一個開放原始碼平台,可自動建構及發布 iOS 和 Android 應用程式。它會遵循 Fastfile
中定義的簡單指示。設定車道和 Fastfile
後,即可將 App Distribution 與快道設定整合。
步驟 1:設定 fastlane
如要將 App Distribution 新增至 fastlane 設定,請從 iOS 專案的根層級執行下列指令:
fastlane add_plugin firebase_app_distribution
如果指令提示您選擇選項,請選取
Option 3: RubyGems.org
。
步驟 2:使用 Firebase 進行驗證
您必須先透過下列任一方式驗證 Firebase 專案,才能使用 fastlane 外掛程式。根據預設,如未採用其他驗證方法,Fastlane 外掛程式會尋找來自 Firebase CLI 的憑證。
步驟 3:設定 Fastfile 並發布應用程式
- 在
./fastlane/Fastfile
車道中,新增firebase_app_distribution
區塊。使用下列參數設定分佈:firebase_app_distribution 參數 app
僅當應用程式不含 Firebase 設定檔 (
GoogleService-Info.plist
) 時才需要:應用程式的 Firebase 應用程式 ID。您可以在 Firebase 控制台的「一般設定」頁面中找到應用程式 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 檔案) 的已簽署連結。連結將於一小時後失效。
版本發布後,該版本會在 Firebase 控制台的 App Distribution 資訊主頁中顯示 150 天。建構作業到期前 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
執行 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_testers
和 firebase_app_distribution_remove_testers
工作也接受下列引數:
project_name
:您的 Firebase 專案編號。group_alias
(選用):如果指定此值,系統會將測試人員加入 (或移出) 指定群組。service_credentials_file
:Google 服務憑證檔案的路徑。firebase_cli_token
:Firebase CLI 的驗證權杖。
service_credentials_file
和 firebase_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 設定檔 ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path
|
如果未指定 |
firebase_cli_token
|
使用 Firebase CLI 驗證持續整合環境時,系統會列印的重新整理權杖 (詳情請參閱「使用 CLI 與持續整合系統」)。 |
service_credentials_file
|
Google 服務帳戶 JSON 檔案的路徑。請參閱先前的說明文件,瞭解如何使用服務帳戶憑證進行驗證。 |
service_credentials_json_data
|
Google 服務帳戶的 json 檔案內容。請參閱先前的說明文件,瞭解如何使用服務帳戶憑證進行驗證。 |
debug
|
布林值標記。您可以將這個屬性設為 |
後續步驟
如要手動或以程式輔助方式註冊更多裝置,請參閱「註冊其他 iOS 裝置」。