使用 CI/CD 和 Fastlane 發布 Apple 應用程式給品質確保測試人員的最佳做法

本文說明使用 Firebase 應用程式發布和快速連線的最佳做法,讓 Apple 平台的預先發布版測試工作流程具備永續性,且可在 CI/CD 環境中重複。雖然本文件的重點放在快速車道,但也說明可透過 Firebase 控制台、Firebase CLI 和公開的 Firebase App Distribution API 提供的解決方案,讓您可以擁有更多彈性。我們也會說明發布版本和測試人員的限制,方便您預先規劃以獲得最佳體驗。

如果您也使用 Android,請參閱「使用 CI/CD 將 Android 應用程式發布給品質確保測試人員的最佳做法」。

事前準備

實作本文件的最佳做法之前,請務必在 Firebase 控制台中為每個應用程式啟用應用程式發布功能。如果您尚未啟用應用程式發布功能,您會收到 404 錯誤。

如要啟用應用程式發布功能,請按照下列步驟操作:

  1. 在 Firebase 控制台中開啟「App Distribution」(應用程式發布) 頁面

  2. 選取您的 iOS 應用程式。

  3. 點選「Get Started」(開始使用)

運用 CI/CD 自動化發布預先發布版測試工作流程

如要自動建構並發布應用程式給測試人員,且您正在使用 CI/CD,建議您使用 fastlane。另一種做法是使用 Firebase CLI,這可讓您存取各種 Firebase 產品。

使用 Fastlane

使用 Quicklane 自動建構及發布 iOS 和 Android 應用程式的開放原始碼工具,將應用程式發布整合至 CI/CD 管道。自動建構並發布最新版本的測試人員,可確保測試人員能隨時取得最新的測試版應用程式。

如要瞭解如何整合「應用程式發布」與 Quicklane,請參閱「使用 Fastlane 向測試人員發布 iOS 應用程式」一節。另請參閱程式碼研究室,瞭解 Quicklane 整合程序。

使用 Firebase CLI

使用應用程式發布提供的 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 應用程式發布給測試人員」一文。

使用服務憑證進行驗證

透過服務帳戶使用應用程式發布 Fastlane 外掛程式或 Firebase CLI,兩者都能利用應用程式預設憑證,協助您管理持續整合。服務帳戶是一種 Google 帳戶類型,代表應用程式而非使用者。CI 系統可以使用服務帳戶執行應用程式發布工作負載。詳情請參閱使用服務帳戶進行驗證

如果您使用 Workload Identity 聯盟,可以產生並使用憑證設定檔,而非服務帳戶金鑰。

請注意版本限制

應用程式發布功能支援每個應用程式最多 1,000 個版本。也就是說,如果超出版本限制,應用程式發布會自動刪除超出限制的最舊版本。如要瞭解如何管理版本限制,請參閱「應用程式版本的推出時間為何?」一節。

將同一組測試人員新增至多個版本

如果您想為版本新增大量測試人員,請使用應用程式發布的大量測試人員管理功能。

建議您使用群組,將相同的測試人員加入多個版本。「群組」可做為存取控制清單 (ACL),從群組中移除測試人員後,他們就無法再存取發布至該群組的所有版本。詳情請參閱「在群組中新增及移除測試人員」。

如果有很多測試人員需要管理,您可以透過 Firebase 控制台大量新增及刪除測試人員。如要自動新增及移除測試人員,請使用 Firebase CLIfastlane公用 Firebase App Distribution API

請注意測試人員數量上限

應用程式發布會限制可新增至 Firebase 專案或「應用程式發布」群組的測試人員數量。一旦超過限制,您就無法將應用程式發布給其他測試人員。如要進一步瞭解測試人員數量上限,請參閱「為應用程式新增測試人員是否有限制?」一節。

管理並自動新增 iOS 測試人員裝置

為了協助您註冊其他 iOS 測試人員裝置,應用程式發布功能會透過電子郵件或 CSV 檔案通知您新的測試人員 iOS 裝置,讓您在 Apple 開發人員入口網站中管理 iOS 測試人員裝置。詳情請參閱「從 CSV 檔案匯入測試人員」一文。你也可以透過程式輔助,使用 Fastlane 匯出新裝置

如要瞭解如何設定能自動提取 UDID 的 Quicklane 動作,將 UDID 新增至 Apple 開發人員控制台,然後重新建構應用程式並發行,請參閱「使用「應用程式發布」和「Fastlane」加快發布 iOS 預先發布版的速度」一節。

讓潛在測試人員自行註冊測試

建議您使用邀請連結,輕鬆將應用程式發行給更多測試人員。「邀請連結」是專屬網址,可讓測試人員輸入電子郵件地址,註冊測試應用程式。只要讓使用者將自己加入應用程式測試人員清單,就能輕鬆增加內部測試集。

邀請連結的用途包括公司 Dogfood 測試計畫、擁有大型品質確保團隊的機構,以及希望個別用戶端控管測試人員存取權的開發人員群組。

建議您為群組建立邀請連結。凡是透過邀請連結申請的測試人員,都會自動新增至後續版本中。

詳情請參閱「建立邀請連結」和「在群組中新增及移除測試人員」。

確保測試人員能測試您重視的版本

新版本上傳時,系統會透過電子郵件通知測試人員。如要補充這則通知,您可以使用下列功能 (發布連結和應用程式內快訊),確保測試人員能測試您重視的應用程式版本:

  • 版本連結:如果您想與測試人員分享特定版本,請使用這項功能。如要瞭解如何使用版本連結,請參閱「透過 Firebase 控制台將 iOS 應用程式發布給測試人員」一文。這些連結也適用於 Firebasefastlane 指令列工具 (CLI) ,以便與建構自動化工具搭配使用。

  • 應用程式內快訊:如果想確保測試人員正在測試應用程式的最新版本,可使用這類快訊。只要整合 Firebase 應用程式發布 iOS SDK,就能在應用程式有新版本的可用時,直接在應用程式內向測試人員顯示快訊。如要瞭解如何新增應用程式內快訊,請參閱「通知測試人員新版本相關資訊」。

自動移除離職測試人員的存取權

當您的 CI/CD 內部測試流程開始運作後,您必須確保離開公司的人員無法再存取您的內部版本。為協助您管理測試人員的建構作業存取權,應用程式發布提供以下選項: