[TOC]
1.Jenkins安裝
首先簡單介紹一下Jenkins的安裝茬斧,網(wǎng)上有很多教程蚪腐。 1.1推薦使用osx系統(tǒng)自帶的homebrew來安裝jenkins陵珍。Objc brew install Jenkins
第一步需要安裝至少java1.8 粹污,如果沒有安裝會有提示java安裝地址 現(xiàn)在安裝java需要有Oracle賬號拂玻,無法注冊的就網(wǎng)上找個別人已經(jīng)注冊的賬號。
java安裝完畢取募,繼續(xù)下面步驟琐谤,鏈接 launchd 配置文件Objc $ ln -sfv/usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents //如果要其他機器也可以訪問,把ip地址改為廣播地址:--httpListenAddress=0.0.0.0 $ launchctl load~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
1.2命令行啟動Jenkins Objc jenkins
一切順利的話矛辕,打開瀏覽器輸入:http://localhost:8080/ 接下來按照Jenkins提示添加賬號,安裝推薦插件即可
2.Jenkins的使用
2.1安裝Keychains and Provisioning Profiles Management(管理本地的keychain和iOS證書的插件) 在Jenkins系統(tǒng)管理插件管理中搜索下載即可付魔。
2.2配置Keychains and Provisioning Profiles Management 安裝好該插件聊品,會在系統(tǒng)管理中出現(xiàn),點擊進入即可几苍。 需要上傳login.keychain文件翻屈,該文件獲取方法,在終端中輸入Objc cd ~/Library/Keychains
點擊Keychains and Provisioning Profiles Management插件頁面中的選取文件將login.keychain文件upload之后妻坝,會出現(xiàn)下圖的界面伸眶,根據(jù)需要將證書添加進去即可惊窖,但是由于macOS10.12以及以后的系統(tǒng)里面沒有l(wèi)ogin.keychain文件,只有l(wèi)ogin.keychain-db,可以復制出來刪除-db厘贼,也可以創(chuàng)建一個快捷方式名字叫做login.keychain界酒,upload就好了。(上傳keychain嘴秸,路徑用自己改名后的那個) 上傳code signing identify,在keychain中找到對應(yīng)打包證書毁欣,顯示簡介,將名字復制寫到code signing identify這一欄即可岳掐,然后添加Provisioning Profiles凭疮,上傳方法和上傳login.keychain一樣,去選擇Provisioning Profiles文件串述,然后upload执解。 Provisioning Profiles Directory Path這一欄的是固定格式的/Users/用戶名/Library/MobileDevice/Provisioning Profiles (這是固定格式,只需要把用戶名替換成自己的mac用戶名即可纲酗,可以試著用終端一層層進入 cd /Users/用戶名/Library/MobileDevice)
3.配置任務(wù)
點擊左上角新建任務(wù)衰腌,創(chuàng)建一個自由風格的任務(wù),然后在選擇丟棄舊的構(gòu)建耕姊,至于天數(shù)和保持的最大個數(shù)桶唐,按照自己的需求來就好。 由于項目中有多個環(huán)境需要配置茉兰,在此選擇參數(shù)化構(gòu)建尤泽。直接用 fastlane 這個工具,構(gòu)建環(huán)境不需要特別設(shè)置梨与。fastlane 會自動讀取本地 iOS 項目中設(shè)置的簽名等信息堕花,所以需要保證本地 iOS 工程已經(jīng)設(shè)置好了正確的簽名信息和 Provisioning Profiles 等文件,并在 keychain 中已經(jīng)加入了正確的證書粥鞋。否則后續(xù)的操作中可能會出現(xiàn)錯誤缘挽。如果這里沒有設(shè)置好,請用 Xcode 打包工程進行相關(guān)設(shè)置即可。如果是xcode 插件則需要配置構(gòu)建環(huán)境壕曼。 接下來就是打包了苏研,因為Jenkins對新版的Xcode插件兼容不好,只能用腳本來打包腮郊,以下是使用fastlane來打包摹蘑。點擊增加構(gòu)建步驟,選擇執(zhí)行shell腳本
因為司機端配置了fastlane伴榔,司機端開發(fā)也可自行在終端進行自動化打包纹蝴。沒有配置的,在電腦安裝下fastlane環(huán)境踪少,之前都有寫如何安裝fastlane環(huán)境塘安。 安裝好fastlane環(huán)境,也可以寫以下代碼打包援奢。蒲公英Jenkins + fastlane自動化打包文檔
Objc IPANAME="jinkens-myapp" fastlane gym --export_method ad-hoc --output_name ${IPANAME} MSG=
git log -1 --pretty=%BPASSWORD=123456 curl -F "file=@${IPANAME}" -F "uKey=USER_KEY" -F "_api_key=API_KEY" -F "updateDescription=${MSG}" -F "password=${PASSWORD}" https://qiniu-storage.pgyer.com/apiv1/app/upload
也可使用文章后上傳的腳本或者查詢資料寫其他腳本打包兼犯。 上傳蒲公英也可使用jenkins插件UPLOAD TO PGYER,下載該插件,增加構(gòu)建步驟集漾,選擇該插件即可切黔。Jenkins蒲公英插件上傳 附上持續(xù)化打包成功圖 4.踩坑記錄
4.1 本文使用的打包方式,如果jenkins控制臺輸出報找不到Xcode Comand Line Tools,去Xcode偏好設(shè)置具篇,location 勾選Comand Line Tools
4.2 如果jenkins控制臺輸出報找不到pyger plugins 終端cd到j(luò)enkins下載的項目根目錄 執(zhí)行fastlane addplugin pgyer
4.3 如果選擇的參數(shù)化構(gòu)建纬霞,發(fā)現(xiàn)選擇打包的scheme對不上jenkins選擇的scheme,則去Xcode manager scheme 取消勾選target再重新勾上就行驱显。
4.4 蒲公英最近改動诗芜,現(xiàn)在上傳強制需要邀請訪問方式,需要設(shè)置密碼埃疫,或者回答問題伏恐,所以在寫腳本時,一定要設(shè)置password等, installtype栓霜!翠桦,否則會上傳失敗,報installType error錯誤胳蛮。
4.5 使用shell腳本 xcodebulid時销凑,注意shell腳本空格傳參問題,帶空格的參數(shù)加雙引號仅炊,例如"${scheme_name}"
4.6 描述文件設(shè)置斗幼,將jenkins部署的電腦配置好證書和描述文件,否則無法打包 4.7 shell腳本編譯方式設(shè)置UseModernBuildSystem茂洒,否則項目編譯可能會報重復庫錯誤
4.8 jenkins打包請勿使用development描述文件孟岛,否則無法打包 4.9如果切換tag,或者分支,jenkins打包報找不到對應(yīng)scheme督勺,則在Xcode manager scheme渠羞,勾上需要的scheme,并點擊右上角Autocreate Schemes Now