jenkins-fastlane 持續(xù)集成和自動化打包

jenkins-fastlane 持續(xù)集成和自動化打包

目錄

  • 背景
  • 自動化打包腳本
  • 配置 Jenkins

背景

先看下目前都有哪些打包方式:

方式一

debug 包:直接 build 出一個 app,放到 itunes 里,然后上傳 fir 或者 蒲公英。
release 包:archive 出一個 ipa,通過 application loader 上傳到 itunes。

方式二

自動化腳本,一鍵打出 debug 包和 release 包,以前都會使用 shenzhen 去做自動化腳本,現在 shenzhen 已經被 fastlane 替代。

方式三

Jenkins + Fastlane + GitLab + fir (或者蒲公英)

很明顯方式二更快捷,也節(jié)約了時間成本,但是還是會不夠自動化,是手動觸發(fā)去打包的,所以綜上所訴方式三是最能滿足需求的,不僅可以基于觸發(fā)器自動打包,還可以在 Jenkins 上引入需要的插件來擴展功能。

自動化打包腳本套件

安裝 Fastlane

Fastlane 是一套使用Ruby寫的自動化工具集,用于iOS和Android的自動化打包、發(fā)布等工作,可以節(jié)省大量的時間

sudo gem install fastlane --verbose

安裝 fir

sudo gem install fir-cli

編寫 shell 腳本

可以參考我寫的這個腳本
https://github.com/karosLi/jenkins-fastlane/blob/master/build.sh

腳本說明:

  • 支持版本號自增長
  • 支持傳入自定的宏,用于在代碼里使用此預編譯的宏來區(qū)分開發(fā)環(huán)境和發(fā)布環(huán)境
  • 支持自動上傳到 fir 和 testflight
  • 上傳成功后彈窗提示

上傳到 fir 的用法:

./build.sh -m "xxxx_app_test" -t test

上傳到 testflight 的用法:

./build.sh -m "xxxx_app_pro" -t pro

Jenkins 安裝

Jenkins 是一個開源項目,提供了一種易于使用的持續(xù)集成系統(tǒng),使開發(fā)者從繁雜的集成中解脫出來,專注于更為重要的業(yè)務邏輯實現上。同時 Jenkins 能實施監(jiān)控集成中存在的錯誤,提供詳細的日志文件和提醒功能,還能用圖表的形式形象地展示項目構建的趨勢和穩(wěn)定性。

下載 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/ ,選擇系統(tǒng)管理 - 管理插件。

在可選插件中選擇GitLab Plugin,Gitlab Hook Plugin,和 Cocoapod plugin 進行安裝。

構建任務

  1. 點擊新建,輸入名稱,構建一個自由風格的軟件項目。

  2. 配置 Git 倉庫地址,并添加 git 賬號。

  3. 配置構建腳本


    jenkins_build_commnd.jpg
  4. 完成配置后就可以添加構建任務

如果在構建的時候,出現連不上 github 的錯誤,可能是由于沒有關閉 vpn 的引起的,也有可能是沒有配置 Cocoapod plugin 引起的。

關于代碼簽名

這里我沒有下載配置 provision file 的插件,因為我使用的是自動簽名管理,如果你也使用的是自動簽名管理,發(fā)現沒有起作用,可以先清空 provision file 目錄 (/Users/xxx/Library/MobileDevice/Provisioning Profiles),然后打開工程,取消勾選 Automatically manage signing,重新再選中它,然后重新選擇 Team,就可以重新開始構建任務了。

參考鏈接

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容