在現代開發流程中,持續集成(CI)已經成為必不可少的環節。對于iOS應用的開發與發布,持續集成不僅限于構建過程,還應該涵蓋從代碼提交到版本發布的整個生命周期。然而,由于iOS平臺對開發環境的限制,如何將iOS的構建、打包、簽名、上傳等步驟自動化,仍是許多開發團隊面臨的挑戰。
本文將以一個跨平臺團隊為例,展示如何通過自動化構建與CI流程結合,以及如何使用Appuploader等工具,簡化iOS應用的上架任務。本文重點講解了如何在不依賴Mac機器的情況下,使用現有工具組合完成從構建到提交App Store的全過程。
項目背景
- 項目類型:跨平臺企業級App(Flutter/React Native)
- 團隊規模:10人,開發6人(包括前端、后端),測試2人,產品2人
- 開發環境:Windows(前端)、Mac(后端及CI環境)
- 目標:通過持續集成和自動化流程,使iOS上架工作能夠高效進行,減少手動操作,提高發布頻率。
工具鏈概覽
為了將iOS上架流程納入CI,我們使用了以下工具組合:
工具名稱 | 使用角色 | 作用 | 系統平臺支持 |
---|---|---|---|
GitLab CI/CD | 開發團隊 | 自動化構建、打包、簽名流程,管理構建產物 | 全平臺 |
Fastlane | 開發團隊 | 自動化Xcode構建、歸檔、簽名、IPA文件生成 | macOS |
Appuploader | 產品/運營/測試 | 管理證書、描述文件、上傳IPA文件和應用元數據 | 全平臺 |
Firebase | 測試團隊 | 分發測試版本,并收集反饋 | 全平臺 |
App Store Connect | 產品經理 | 管理應用信息、提交審核 | Web |
流程拆解與角色分工
步驟一:CI構建與IPA生成(GitLab CI + Fastlane)
每次開發者提交代碼至Git倉庫,GitLab CI會自動啟動構建流程。構建環境配置如下:
- 構建觸發:GitLab CI監聽代碼提交觸發構建任務。構建任務通過配置文件(.gitlab-ci.yml)觸發Fastlane自動化腳本。
- 打包與歸檔:Fastlane使用
gym
命令打包iOS應用,生成.ipa
文件。 - 證書與簽名:Fastlane的
match
功能從共享倉庫中拉取證書與描述文件,完成簽名操作。
這樣,開發團隊只需通過GitLab提交代碼,CI系統即可自動完成IPA文件的生成,無需手動操作。
步驟二:證書與描述文件管理(Appuploader)
iOS應用上架的最大難點之一就是證書和描述文件的管理。為了避免每次發布時都需要在Mac上配置和更新證書,我們將證書管理流程與Appuploader結合,實現自動化。
- 證書管理:Appuploader使得開發者不再依賴Mac或Xcode來生成和管理iOS證書。開發人員可以在Windows或Linux系統上直接生成并下載所需的開發證書、發布證書和描述文件。
- 描述文件生成:每次新版本發布時,產品經理可以輕松生成與應用ID、證書相對應的描述文件,并將其與構建產物一同使用。
通過這種方式,團隊可以避免反復配置證書和描述文件的麻煩,尤其是在跨平臺開發環境中,非Mac設備的開發人員也能參與到證書管理中。
步驟三:上傳元數據與截圖(Appuploader)
每次提交應用更新時,都需要上傳截圖、關鍵詞、描述信息以及其他元數據。由于產品經理和運營團隊不使用Mac設備,我們通過Appuploader來簡化這個過程:
- 批量上傳截圖:設計團隊將所有設備尺寸的截圖整理好后,運營人員通過Appuploader上傳到App Store Connect。Appuploader支持批量上傳不同設備尺寸的截圖,避免了手動上傳的重復勞動。
- 上傳元數據:運營人員將所有應用描述文本、關鍵詞和本地化信息整理為模板后,批量上傳到App Store Connect。
通過這種方式,非開發團隊成員無需直接進入App Store后臺,可以完全完成上傳任務。
步驟四:上傳IPA文件(Appuploader)
IPA文件生成完成后,我們將其上傳到App Store。這一環節由產品團隊負責,在Windows或Linux環境下,產品經理可以使用Appuploader進行上傳,無需依賴Mac設備:
- 上傳IPA文件:通過Appuploader的圖形界面,產品經理可以快速將IPA文件上傳至App Store,并完成版本信息的填寫。
這種做法使得非技術人員也能參與到iOS應用的發布流程中,完全打破了Mac設備依賴的限制。
步驟五:提交審核與版本管理(App Store Connect)
應用上傳完畢后,產品經理登錄App Store Connect,完成以下操作:
- 元數據檢查:確認上傳的截圖、描述信息、關鍵詞等是否正確。
- 提交審核:確認所有信息無誤后,提交應用至蘋果審核。
在此環節,App Store Connect的操作依然需要人工進行,因為這是蘋果規定的審核入口。
步驟六:測試與反饋(Firebase)
在App Store審核通過前,我們會通過Firebase App Distribution將IPA文件分發給測試人員進行灰度發布和功能驗證:
- 安裝包分發:通過Firebase提供的鏈接或二維碼,測試人員可以在不同設備上安裝應用并進行測試。
- 收集反饋:測試人員反饋問題后,開發團隊及時修復,確保產品質量。
Firebase的集成功能幫助我們快速得到用戶的反饋,避免了等待TestFlight審核的時間。
總結與提升空間
通過將構建、簽名、上傳和發布等步驟融入到CI流程中,并結合證書管理、截圖上傳和IPA文件上傳,我們成功地優化了iOS上架流程。這個過程不僅減少了Mac依賴,還讓非技術團隊成員能夠獨立完成部分任務,提高了工作效率。
盡管這一流程已經幫助我們顯著提高了效率,但仍有提升空間,尤其是在完全自動化上傳和審核提交流程方面。未來,我們計劃進一步整合Fastlane與其他工具,提升整個iOS發布流程的自動化程度,減少人工干預。