本文介紹使用 Firebase App Distribution 和 fastlane 的最佳做法,讓 Apple 平台預先發布版測試工作流程在 CI/CD 環境中可持續且可重複。雖然本文著重於 fastlane,但我們也會說明可透過 Firebase 控制台、Firebase CLI 和公開 Firebase App Distribution API 取得的解決方案,讓您享有更多彈性。我們也會說明版本和測試人員限制,方便您事先規劃,獲得最佳體驗。
如果您也使用 Android,請參閱「使用 CI/CD 將 Android 應用程式發布給品質確保測試人員的最佳做法」。
事前準備
在實作本文的最佳做法之前,請務必在 Firebase 控制台中為每個應用程式啟用 App Distribution。如果未啟用 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
使用 App Distribution 提供的 Firebase CLI 工具,以程式輔助方式將建構作業發布給測試人員。您可以為版本指定測試人員和版本資訊。
指定應用程式的 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、將 UDID 新增至 Apple 開發人員控制台,然後重新建構及發布應用程式,請參閱「利用 App Distribution 和 fastlane 加速釋出 iOS 預先發布版本」。
讓潛在測試人員自行註冊參與測試
如要輕鬆將應用程式發布給更多測試人員,建議您使用邀請連結。邀請連結是專屬網址,測試人員只要輸入電子郵件地址,就能註冊測試應用程式。讓使用者自行加入應用程式測試人員名單,是擴大內部測試人員群體的絕佳方式。
邀請連結的用途包括公司內部測試計畫、擁有大型品質確保團隊的組織,以及希望個別客戶能控管測試人員存取權的開發人員群組。
建議您為群組建立邀請連結。凡是透過邀請連結註冊的測試人員,都會自動加入後續版本。
詳情請參閱「建立邀請連結」和「在群組中新增及移除測試人員」。
確認測試人員測試的是您關注的版本
上傳新版本後,測試人員會收到電子郵件通知。除了這項通知外,您還可以使用下列功能 (版本連結和應用程式內快訊),確保測試人員測試的是您指定的應用程式版本:
版本連結:如要與測試人員分享特定版本,請使用這項功能。如要瞭解如何使用版本連結,請參閱「使用 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端點。