Jenkins配合FastLane完成打包
我們將兩者組合起來.
首先說一下,ios打包用的xcbuild命令,所以必須是macos環(huán)境,這個不用多解釋.
所以....Jenkins所在宿主機得是mac系統(tǒng)的(如果有大神知道別的方式,麻煩指點一下),因為沒有多余的mac機子,我就搭在了我自己的機子上.
接下來我們說說怎么搞
啟動Jenkins
首先,啟動終端,輸入
Jenkins
啟動Jenkins,打開地址(沒改過端口就是8080了)http://localhost:8080
新建任務
新建item
新建item
新建自由項目
啥也不用勾,寫個描述差不多了
image
源代碼管理需要寫一下
源代碼管理
觸發(fā)器什么的啥也不用寫
最后就是這個Execute shell了
Jenkins從git上拉完代碼,會執(zhí)行這里面的shell
shell腳本的編寫就需要各位去學習一下了
下圖是我的shell腳本,我給大家講解一下我每一行的作用
Execute shell
#Jenkins部署在我本機,我本機作為宿主機,拉下來的代碼也在我本機,所以我想看一下代碼拉下來以后的路徑,因此在這里打印一下
echo "獲取當前項目路徑"
echo $(pwd)
#------------react-native的三方庫操作 start--------------#
#做一次yarn操作,因為我的項目是react-native項目,且node_modules不上傳git,因此從git上拉下來的代碼是不包含node_modules的,我需要做一次yarn操作.
#同理,你的ios項目如果是使用pod管理,你可以做一次pod install,把需要的三方庫拉下來
echo "執(zhí)行yarn操作"
yarn
#替換需要修改的文件,這個install2是我在項目里寫的腳本,做我需要的一些事,可以忽略
npm run install2
#------------react-native的三方庫操作 end--------------#
#上述動作執(zhí)行完畢以后執(zhí)行下面的操作
echo "執(zhí)行完畢,cd到ios下做打包工作"
#cd到ios目錄下,當然,如果你本身就是ios純原生項目,你就不要cd了
cd ./ios
echo "開始打包"
#執(zhí)行你寫的FastLane的action,可以見文章開頭的FastLane的使用
fastlane test_ad
echo "打包完畢"
#------------打包完畢,下面是我自定義的一些操作--------------#
#因為我打完包需要給測試做內測分發(fā),自己搭建了一個內測分發(fā)的壓面,下面是我自定義的一些操作,這里就省略了
#....
點擊保存,就這樣,打包腳本的編寫就完成了
保存
測試一下
直接上圖把,看圖比較直觀
開始構建
查看正在構建的任務
查看控制臺輸出
所有的log信息都在這里看,報錯了也可以在這里看到底什么地方報錯了,針對性解決對應錯誤.如下圖
控制臺輸出
最后的結果如下圖
結果
產物
Jenkins拉下來的項目,成功打出ipa包和dsym文件.
同時,你有打出來的包文件的路徑,你是想上傳蒲公英或者別的平臺或公司內部有分發(fā),都是可以直接拿著產物為所欲為的.例如:我將它放到了我們自己的服務器上進行分發(fā).見下面這篇文章