iOSJenkins自動化打包并發(fā)布至蒲公英

[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)注冊的賬號。

avatar

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.plist1.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)建尤泽。
AB75090B-F2CC-4E50-B159-604927507721.png

源碼管理
image.jpeg

注意設(shè)置下Additional Behaviours以防請求超時代碼下載失敗。 構(gòu)建觸發(fā)器 接下來是構(gòu)建觸發(fā)器规脸,也就是什么時候觸發(fā)自動打包坯约,這里不構(gòu)建觸發(fā)器。需要可自行填寫莫鸭。 構(gòu)建環(huán)境 在構(gòu)建環(huán)境里面勾選Keychains and Code Signing Identities和Mobile Provisioning Profiles闹丐,Keychains and Code Signing Identities是打包需要的證書,Mobile Provisioning Profiles是打包需要的配置文件被因,都是可以自己選擇的卿拴。如圖
image.jpeg

直接用 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腳本

5.png

因為司機端配置了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ù)化打包成功圖
image.jpeg

image.jpeg
image.jpeg

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等, install
type栓霜!翠桦,否則會上傳失敗,報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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末智哀,一起剝皮案震驚了整個濱河市次询,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瓷叫,老刑警劉巖屯吊,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異摹菠,居然都是意外死亡盒卸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門次氨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔽介,“玉大人,你說我怎么就攤上這事煮寡『缧睿” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵幸撕,是天一觀的道長薇组。 經(jīng)常有香客問我,道長坐儿,這世上最難降的妖魔是什么律胀? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮挑童,結(jié)果婚禮上累铅,老公的妹妹穿的比我還像新娘。我一直安慰自己站叼,他們只是感情好娃兽,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著尽楔,像睡著了一般投储。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上阔馋,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天玛荞,我揣著相機與錄音,去河邊找鬼呕寝。 笑死勋眯,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播客蹋,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼塞蹭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了讶坯?” 一聲冷哼從身側(cè)響起番电,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辆琅,沒想到半個月后漱办,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡婉烟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年娩井,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片似袁。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡撞牢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出叔营,到底是詐尸還是另有隱情屋彪,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布绒尊,位于F島的核電站畜挥,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏婴谱。R本人自食惡果不足惜蟹但,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谭羔。 院中可真熱鬧华糖,春花似錦、人聲如沸瘟裸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽话告。三九已至兼搏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沙郭,已是汗流浹背佛呻。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留病线,地道東北人吓著。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓鲤嫡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绑莺。 傳聞我的和親對象是個殘疾皇子泛范,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容