本文將介紹使用 Firebase App Distribution 和 fastlane 的最佳做法,讓 Apple 平台預先發布測試工作流程在 CI/CD 環境中可持續進行且可重複執行。本文主要介紹 fastlane,但也會說明透過 Firebase 控制台、Firebase CLI 和公開 Firebase App Distribution API 提供的解決方案,讓您有更多選擇。我們也會說明發布和測試人員的限制,方便您預先規劃,確保獲得最佳體驗。
如果您也使用 Android,請參閱「使用 CI/CD 將 Android 應用程式發布給 QA 測試人員的最佳做法」。
事前準備
在實作本文的最佳做法之前,請務必App Distribution在Firebase控制台為每個應用程式啟用。如果尚未啟用App Distribution,您會收到 404 錯誤。
如要啟用 App Distribution,請按照下列步驟操作:
在 Firebase 控制台中開啟App Distribution 頁面。
選取 iOS 應用程式。
點選「開始使用」。
使用 CI/CD 自動執行預先發布測試工作流程
如要自動建構應用程式並發布給測試人員,且您使用 CI/CD,建議使用 fastlane。你也可以使用 Firebase CLI,存取各種 Firebase 產品。
使用 fastlane
使用 fastlane 將 App Distribution 整合至 CI/CD 管道。fastlane 是一種開放原始碼工具,可自動建構及發布 iOS 和 Android 應用程式。自動建構最新版本並發布給測試人員,確保測試人員一律使用應用程式的最新測試版本。
如要瞭解如何整合 App Distribution 與 fastlane,請參閱「使用 fastlane 將 iOS 應用程式發布給測試人員」。另請參閱程式碼研究室,瞭解如何整合 fastlane。
使用 Firebase CLI
使用 Firebase CLI 工具,以程式輔助方式將建構版本發布給測試人員。App Distribution您可以為建構版本指定測試人員和版本說明。
指定應用程式的 Firebase 應用程式 ID,並視需要新增版本說明和含有測試人員電子郵件地址的檔案,即可發布最新版 iOS 建構版本 test.ipa
:
firebase appdistribution:distribute test.ipa \ --app 1:1234567890:ios:0a1b2c3d4e5f67890 \ --release-notes "Bug fixes and improvements" --testers-file testers.txt
如要進一步瞭解如何使用 Firebase CLI 自動執行建構作業,請參閱使用 Firebase CLI 將 iOS 應用程式發布給測試人員。
使用服務憑證進行驗證
使用 App Distribution fastlane 外掛程式或 Firebase CLI 和服務帳戶,充分運用應用程式預設憑證,協助您管理 CI。服務帳戶是一種 Google 帳戶,代表應用程式而非使用者。您的 CI 系統可以使用服務帳戶執行 App Distribution 工作負載。詳情請參閱「使用服務帳戶進行驗證」。
如果您使用 workload identity federation,可以產生並使用憑證設定檔,取代服務帳戶金鑰。
請留意發布限制
App Distribution的每個應用程式版本數量上限為 1,000 個。因此,如果超出版本數量上限,App Distribution會自動刪除超出上限的最舊版本。如要瞭解如何管理發布限制,請參閱「應用程式版本可供下載多久?」一文。
將同一組測試人員新增至多個版本
如要為版本新增大量測試人員,請使用 App Distribution 的大量測試人員管理功能。
建議您使用群組,將相同的測試人員加入多個版本。群組可做為存取權控制清單,從群組中移除測試人員後,他們就無法再存取發布給該群組的所有版本。詳情請參閱「在群組中新增及移除測試人員」。
如果需要管理大量測試人員,可以使用 Firebase 控制台大量新增及刪除測試人員。如要自動新增及移除測試人員,請使用 Firebase CLI、fastlane 或 公開 Firebase App Distribution API。
請注意測試人員限制
App Distribution 限制可新增至 Firebase 專案或 App Distribution 群組的測試人員人數。超過上限後,您就無法再將應用程式發布給其他測試人員。如要進一步瞭解測試人員限制,請參閱「為應用程式新增測試人員時是否有任何限制?」一文。
管理及自動新增 iOS 測試裝置
為協助您註冊其他 iOS 測試裝置,App Distribution會透過電子郵件或 CSV 檔案通知您新的測試用 iOS 裝置,方便您在 Apple Developer Portal 中管理 iOS 測試裝置。詳情請參閱「從 CSV 檔案匯入測試人員」。您也可以透過程式輔助方式,使用 fastlane 匯出新裝置。
如要瞭解如何設定 fastlane 動作,自動提取 UDID、將其新增至 Apple 開發人員管理中心,然後重建及發布應用程式,請參閱「使用 App Distribution 和 fastlane 更快發布 iOS 搶先版建構版本」。
讓潛在測試人員自行註冊參加測試
為方便將應用程式發布給更多測試人員,建議您使用邀請連結。邀請連結是專屬網址,測試人員只要輸入電子郵件地址,即可申請測試應用程式。啟用這項功能後,使用者就能自行加入應用程式測試人員名單,輕鬆擴大內部測試人員規模。
邀請連結的應用情境包括公司內部測試計畫、擁有大型 QA 團隊的機構,以及希望個別客戶控管測試人員存取權的開發人員群組。
建議您為群組建立邀請連結。使用邀請連結註冊的任何測試人員,都會自動加入後續版本。
詳情請參閱「建立邀請連結」和「在群組中新增及移除測試人員」。
確認測試人員測試的是您關心的版本
上傳新版本後,測試人員會收到電子郵件通知。為輔助這項通知,您可以使用下列功能 (發布連結和應用程式內快訊),確保測試人員測試的是您關心的特定應用程式版本:
版本連結:如要與測試人員分享特定版本,請使用這項功能。如要瞭解如何使用發布連結,請參閱「使用 Firebase 控制台向測試人員發布 iOS 應用程式」。您也可以使用 Firebase 和 fastlane 指令列 (CLI) 工具取得這些連結,以便搭配建構自動化工具使用。
應用程式內快訊:如要確保測試人員測試的是最新版應用程式,請使用這些快訊。整合 Firebase App Distribution iOS SDK 後,當應用程式有新版本時,系統會直接在應用程式內向測試人員顯示快訊。如要瞭解如何新增應用程式內快訊,請參閱「通知測試人員有新版本」。
自動移除離職員工的測試人員存取權
CI/CD 內部測試流程開始運作後,請務必確保離職員工無法再存取內部版本。為協助您管理測試人員的建構版本存取權,App Distribution 提供下列選項:
fastlane:使用 Fastfile 檔案或直接執行 fastlane 動作。如要進一步瞭解如何使用 fastlane 移除測試人員,請參閱「使用 fastlane 發布 iOS 應用程式給測試人員」。
公開 Firebase App Distribution API: 使用
testers.batchRemove
端點。