在Mac上配置Jenkins
直接從官網(wǎng)下載dmg安裝包即可.
關(guān)于基礎(chǔ)的配置看這篇就夠了手把手教你利用Jenkins持續(xù)集成iOS項(xiàng)目
配置好后洋措,同時(shí)在設(shè)置里打開(kāi)遠(yuǎn)程登錄就可以作為jenkins的slave節(jié)點(diǎn)了某残。
安裝插件
Keychains and Provisioning Profiles Management 配置證書(shū)和描述文件
Post-Build Script Plug-in 執(zhí)行腳本插件
Xcode integration xcode編譯配置插件
部分插件找不到時(shí),解決方法見(jiàn) jenkins插件安裝
嘗試過(guò)升級(jí)站點(diǎn)后但還是找不到懂缕,后來(lái)在日本鏡像http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/中找到并下載下.hpi文件重啟jenkins后生效
添加Mac作為slave節(jié)點(diǎn)
安裝ssh slaves plugin插件
在http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/上找到ssh slaves plugin插件下載.hpi文件并上傳后重啟jenkins即可
系統(tǒng)設(shè)置-》管理節(jié)點(diǎn)
slave 節(jié)點(diǎn)配置過(guò)程如下
Master創(chuàng)建job
在master創(chuàng)建job,指定在slave上執(zhí)行。并配置編譯時(shí)腳本澄惊,編譯后腳本
在master上創(chuàng)建job,job任務(wù)的配置如下:
由于xcode有自動(dòng)啟動(dòng)簽名機(jī)制富雅,因此只要我們?cè)趈enkins環(huán)境配置中正確添加了keychains和provisionning profiles等掸驱,無(wú)需設(shè)置這里的構(gòu)建環(huán)境。把所有的編譯打包工作交給shell腳本去做
構(gòu)建腳本如下可以接在寫(xiě)在方框內(nèi)
Jobname 表示jenkisn中的一個(gè)任務(wù)名稱(chēng)
AppName 表示App名稱(chēng)
#!/bin/sh
# 解鎖對(duì)login.keychain的訪(fǎng)問(wèn)没佑,codesign會(huì)用到
security unlock-keychain -p "password" $HOME/Library/Keychains/login.keychain
# 清除
xcodebuild clean
# 打包簽名
xcodebuild -workspace /Users/Shared/Jenkins/Home/workspace/JobName/Appname.xcworkspace -scheme Appname -configuration Development archive -archivePath /Users/Shared/Jenkins/Home/workspace/Jobname/Appname -destination generic/platform=iOS
# 導(dǎo)出ipa
xcodebuild -exportArchive -archivePath /Users/Shared/Jenkins/Home/workspace/Jobname/Appname -exportPath /Users/Shared/Jenkins/Home/workspace/Jobname/Appname -exportOptionsPlist /Users/Shared/Jenkins/Home/workspace/PonyCarTest/exportOptions.plist
# 上傳
curl -F "file=@/Users/Shared/Jenkins/Desktop/PonyCar/PonyCar.ipa" -F "uKey=蒲公英生成" -F "_api_key=蒲公英生成" https://qiniu-storage.pgyer.com/apiv1/app/upload
編譯后發(fā)現(xiàn)其實(shí)毕贼,master會(huì)在slave節(jié)點(diǎn)主機(jī)上生成${jenkins安裝目錄}/workspace/Job名稱(chēng),項(xiàng)目的代碼都在這個(gè)目錄下蛤奢,在${jenkins安裝目錄}/下新增slave.jar文件帅刀,通過(guò)這個(gè)調(diào)起本地的jenkins.jar啟動(dòng)本地的服務(wù),然后執(zhí)行編譯時(shí)腳本
將mac作為一個(gè)slave節(jié)點(diǎn)執(zhí)行iOS的打包過(guò)程远剩,主要是為了將iOS扣溺、Android的自動(dòng)化打包集成到一個(gè)jenkins上去管理。當(dāng)然你也可以不作為slave節(jié)點(diǎn)直接在本地打包編譯項(xiàng)目瓜晤。
命令行啟動(dòng)jenkins:
java -jar jenkins.war --httpPort=8888
localhost:8080/restart 重啟
localhost:8080/exit 退出
localhost:8080/reload 重新加載
主要參考文章:
手把手教你利用Jenkins持續(xù)集成iOS項(xiàng)目
使用Jenkins搭建iOS/Android持續(xù)集成打包平臺(tái)
Jenkins 構(gòu)建 iOS 持續(xù)集成
iOS 通過(guò)Jenkins 自動(dòng)構(gòu)建ipa
Jenkins配置節(jié)點(diǎn)(解決Linux上iOS打包)