jenkins-fastlane 持續集成和自動化打包
目錄
- 背景
- 自動化打包腳本
- 配置 Jenkins
背景
先看下目前都有哪些打包方式:
方式一
debug 包:直接 build 出一個 app,放到 itunes 里,然后上傳 fir 或者 蒲公英。
release 包:archive 出一個 ipa,通過 application loader 上傳到 itunes。
方式二
自動化腳本,一鍵打出 debug 包和 release 包,以前都會使用 shenzhen 去做自動化腳本,現在 shenzhen 已經被 fastlane 替代。
方式三
Jenkins + Fastlane + GitLab + fir (或者蒲公英)
很明顯方式二
更快捷,也節約了時間成本,但是還是會不夠自動化,是手動觸發去打包的,所以綜上所訴方式三
是最能滿足需求的,不僅可以基于觸發器自動打包,還可以在 Jenkins 上引入需要的插件來擴展功能。
自動化打包腳本套件
安裝 Fastlane
Fastlane 是一套使用Ruby寫的自動化工具集,用于iOS和Android的自動化打包、發布等工作,可以節省大量的時間
sudo gem install fastlane --verbose
安裝 fir
sudo gem install fir-cli
編寫 shell 腳本
可以參考我寫的這個腳本
https://github.com/karosLi/jenkins-fastlane/blob/master/build.sh
腳本說明:
- 支持版本號自增長
- 支持傳入自定的宏,用于在代碼里使用此預編譯的宏來區分開發環境和發布環境
- 支持自動上傳到 fir 和 testflight
- 上傳成功后彈窗提示
上傳到 fir 的用法:
./build.sh -m "xxxx_app_test" -t test
上傳到 testflight 的用法:
./build.sh -m "xxxx_app_pro" -t pro
Jenkins 安裝
Jenkins 是一個開源項目,提供了一種易于使用的持續集成系統,使開發者從繁雜的集成中解脫出來,專注于更為重要的業務邏輯實現上。同時 Jenkins 能實施監控集成中存在的錯誤,提供詳細的日志文件和提醒功能,還能用圖表的形式形象地展示項目構建的趨勢和穩定性。
下載 Jenkins
點擊 http://mirrors.jenkins.io/war-stable/latest/jenkins.war 下載最新的Jenkins.war
運行服務器:
需要先安裝 java sdk (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
java -jar jenkins.war
配置 Jenkins:
瀏覽器打開 http://localhost:8080/ 輸入安全密碼,安全密碼命令行輸出的一個文件里面。
然后自動安裝推薦的插件,并新建管理員賬號密碼。
安裝插件
登錄http://localhost:8080/ ,選擇系統管理 - 管理插件。
在可選插件中選擇GitLab Plugin,Gitlab Hook Plugin,和 Cocoapod plugin 進行安裝。
構建任務
點擊新建,輸入名稱,構建一個自由風格的軟件項目。
配置 Git 倉庫地址,并添加 git 賬號。
-
配置構建腳本
jenkins_build_commnd.jpg 完成配置后就可以添加構建任務
如果在構建的時候,出現連不上 github 的錯誤,可能是由于沒有關閉 vpn 的引起的,也有可能是沒有配置 Cocoapod plugin 引起的。
關于代碼簽名
這里我沒有下載配置 provision file 的插件,因為我使用的是自動簽名管理,如果你也使用的是自動簽名管理,發現沒有起作用,可以先清空 provision file 目錄 (/Users/xxx/Library/MobileDevice/Provisioning Profiles),然后打開工程,取消勾選 Automatically manage signing,重新再選中它,然后重新選擇 Team,就可以重新開始構建任務了。