Jenkins+xcode+SVN+fir自動打包

1.持續(xù)化集成的好處

1. 縮減開發(fā)周期食茎,快速迭代版本

每個版本開始都會估算好開發(fā)周期,但是總會因為各種事情而延期馏谨。這其中包括了一些客觀因素别渔。由于產(chǎn)品線增多,迭代速度越來越快田巴,給測試帶來的壓力也越來越大钠糊。如果測試都在開發(fā)完全開發(fā)完成之后再來測試,那就會影響很長一段時間壹哺。這時候由于集成晚就會嚴(yán)重拖慢項目節(jié)奏抄伍。

2.自動化流水線操作帶來的高效

其實打包對于開發(fā)人員來說是一件很耗時,而且沒有很大技術(shù)含量的工作管宵。如果開發(fā)人員一多截珍,相互改的代碼沖突的幾率就越大,加上沒有產(chǎn)線管理機制箩朴,代碼倉庫的代碼質(zhì)量很難保證岗喉。團隊里面會花一些時間來解決沖突,解決完了沖突還需要自己手動打包炸庞。這個時候如果證書又不對钱床,又要耽誤好長時間。這些時間其實可以用持續(xù)集成來節(jié)約起來的埠居。一天兩天看著不多查牌,但是按照年的單位來計算,可以節(jié)約很多時間滥壕!

3.隨時可部署

有了持續(xù)集成以后纸颜,我們可以以天為單位來打包,這種高頻率的集成帶來的最大的優(yōu)點就是可以隨時部署上線绎橘。這樣就不會導(dǎo)致快要上線胁孙,到處是漏洞,到處是bug称鳞,手忙腳亂弄完以后還不能部署涮较,嚴(yán)重影響上線時間。

4.極大程度避免低級錯誤

我們可以犯錯誤胡岔,但是犯低級錯誤就很不應(yīng)該法希。這里指的低級錯誤包括以下幾點:編譯錯誤,安裝問題靶瘸,接口問題苫亦,性能問題。
以天為單位的持續(xù)集成怨咪,可以很快發(fā)現(xiàn)編譯問題屋剑,自動打包直接無法通過。打完包以后诗眨,測試掃碼無法安裝唉匾,這種問題也會立即被暴露出來。接口問題和性能問題就有自動化測試腳本來發(fā)現(xiàn)匠楚。這些低級問題由持續(xù)集成來暴露展現(xiàn)出來巍膘,提醒我們避免低級錯誤。

Jenkins持續(xù)化集成工具

Jenkins的工作流程如圖所示


WechatIMG3.jpeg

2.Jenkins下載和安裝

Jenkins是基于Java開發(fā)的一種持續(xù)集成工具芋簿。所以呢峡懈,要使用Jenkins必須使用先安裝JDK。
JDK的下載地址

WechatIMG4.jpeg

Jenkins下載地址

WechatIMG5.jpeg

下載好JDK和Jenkins的安裝包后直接雙擊安裝就好与斤,具體的就不截圖了肪康,so easy。

WechatIMG6.jpeg

好啦撩穿,安裝好Jenkins后打開瀏覽器打開(http://localhost:8080)
就可以看到Jenkins的初始頁面了(如果不能打開應(yīng)該是JDK環(huán)境沒有安裝好磷支,重新下載最新的JDK安裝一下,也有可能是8080端口被占用了)


這里需要一個初始密碼食寡,頁面中的紅色字體也標(biāo)出了該密碼文件的路徑,不過一開始該文件是沒有讀寫權(quán)限的雾狈,需要先到找到/Users/Shared/Jenkins/Home/ 這個目錄下,改了/secrets/目錄的讀寫權(quán)限抵皱,右鍵顯示簡介善榛,然后點擊鎖就可以改權(quán)限了。同樣的把/secrets/目錄里面的initialAdminPassword文件的權(quán)限改了叨叙,就可以打開initialAdminPassword文件獲取密碼了锭弊。
WechatIMG8.jpeg

把獲取到的密碼粘貼到剛剛的頁面,然后選擇繼續(xù)。

WechatIMG9.jpeg

完成之后會進來一個選擇插件安裝的頁面(這里個人小建議就是選選擇第二個自定義的插件擂错,因為如果選擇第一個安裝推薦的插件的話會太多了味滞,等待的時間過長,而且可能會卡死了)

WechatIMG10.jpeg

選擇了第一個安裝默認(rèn)的插件的話如圖(我第一次安裝時就選擇了安裝推薦插件钮呀,但是等了很久剑鞍,后來直接卡死了,于是我只能卸掉Jenkins重新跑一遍前面的流程爽醋,卸載Jenkins的方法

WechatIMG11.jpeg

還是選擇第二個吧蚁署,到時候初始化完畢了再到插件選擇安裝頁面安裝我們需要的插件即可~~~到了創(chuàng)建用戶的時候了


WechatIMG12.jpeg

路安裝過來,輸入用戶名蚂四,密碼光戈,郵件這些哪痰,就算安裝完成了。

WechatIMG13.jpeg

3.jenkins插件安裝

接下來是插件安裝了

WechatIMG14.jpeg

WechatIMG16.jpeg

這里列一下我用到的插件
1.Xcode integration xcode的插件
2.Keychains and Provisioning Profiles Management 安裝證書的插件
3.Email Extension Plugin 發(fā)送郵件的插件
4.fir-plugin 上傳到fir的插件下載地址(http://blog.fir.im/jenkins/
5.Subversion Plug-in SVN的插件
下載過程中會出現(xiàn)這個頁面久妆,等待下載完成更新頁面即可
WechatIMG17.jpeg

4.Jenkins證書配置

OK晌杰,插件安裝完畢了,下一步的準(zhǔn)備工作是證書的導(dǎo)入,同樣是系統(tǒng)管理--->Keychains and Provisioning Profiles Management(注意這個是安裝了Keychains and Provisioning Profiles Management插件后才會有的)

WechatIMG18.jpeg

然后進來證書設(shè)置頁面筷弦,前往~/Library/keyChains/ 找到login.keychain文件肋演,拖進來證書安裝頁面,點擊upload上傳烂琴,會出現(xiàn)設(shè)置密碼爹殊,填電腦密碼和證書的名字。(這里有可能沒有l(wèi)ogin.keychain奸绷,而是login.keychain-db文件梗夸,一樣的替換掉就好)接著前往~/Library/MobileDevice/文件夾,將你的開發(fā)描述文件拖進來upload

將~/Library/keyChains/ 下的login.keychain 及l(fā)ogin.keychain-db這兩個文件拷貝到/Users/Shared/Jenkins/Library/Keychains文件夾下面(沒有Keychains文件夾就創(chuàng)建一個)

將~/Library/MobileDevice/的整個文件夾Provisioning Profiles拷貝到/Users/Shared/Jenkins/Library/MobileDevice下面(沒有MobileDevice文件夾就創(chuàng)建一個)

一定要把Provisioning Profiles整個文件夾放到MobileDevice下面

一定要把Provisioning Profiles整個文件夾放到MobileDevice下面

一定要把Provisioning Profiles整個文件夾放到MobileDevice下面

最后到秘鑰里面健盒,找到開發(fā)證書-->顯示簡介-->訪問控制修改為允許所有程序訪問此項目(Jenkins才可以訪問到我們的開發(fā)文件)
nice到這里我們的證書就配置完畢啦可以愉快的去構(gòu)建項目啦~~~~


WechatIMG19.jpeg
WechatIMG20.jpeg
WechatIMG21.jpeg
WechatIMG22.jpeg
WechatIMG23.jpeg

5.Jenkins構(gòu)建項目

回到Jenkins的首頁--->新建-->填寫項目名稱绒瘦,這個自己喜歡!扣癣,選擇構(gòu)建項目類型惰帽,選擇一個自由風(fēng)格的項目,next Ok

WechatIMG24.jpeg

1.General默認(rèn)都不選就好父虑,具體的作用可以點擊该酗?都有詳細(xì)的說明

WechatIMG25.jpeg

2.源碼管理選擇SVN,copy源碼的SVN地址,然后addSVN用戶

WechatIMG26.jpeg
WechatIMG27.jpeg
WechatIMG28.jpeg

3.構(gòu)建觸發(fā)器選擇Poll SCM 輪詢的方法士嚎,輸入H/5 * * * * 表示五分鐘check一次SVN的路徑呜魄,如果源碼有變化就構(gòu)建。其他的可點擊莱衩?看具體的解釋

WechatIMG29.jpeg

4.構(gòu)建環(huán)境選擇Keychains就好

WechatIMG30.jpeg

5.構(gòu)建爵嗅,增加構(gòu)建步驟里面選擇Xcode

WechatIMG31.jpeg
WechatIMG32.jpeg
WechatIMG33.jpeg

這里的輸出路徑 ${WORKSPACE}/build/ WORKSPACE指的是當(dāng)前的工作路徑,也可以自定義輸出路徑笨蚁,其他的可以不用設(shè)置

WechatIMG34.jpeg

接著設(shè)置keychain睹晒,path填寫/Users/Shared/Jenkins/Library/Keychains/login.keychain,這個是固定的括细,就是我們剛剛他證書復(fù)制進來的路徑伪很,然后填寫密碼,密碼是電腦的開機密碼注意7艿ァo笔浴!览濒!

WechatIMG36.jpeg

如圖呆盖,這里的schema填寫的是xcode中工程的名稱

WechatIMG37.jpeg

如果你的工程師通過cocoapods管理的話那么就填寫Xcode Workspace File這個拖云,不用填Xcode Project File。但是第一次你的代碼還沒有從SVN上面拉下來呢絮短,所以并不知道這個工程路徑所在啊江兢。所以第一次構(gòu)建的時候這里就留空先昨忆,等你的代碼從SVN上面clone下來后丁频,找到/Users/Shared/Jenkins/Home/workspace/里面找到該工程的路徑在填進去就好,嗯邑贴,我就是這么干的席里,如果有好方法記得分享給我一下呀~注意:該路徑后面不要帶.xcworkspace

6.構(gòu)成成功后的操作,上傳到fir平臺,這里選擇upload to fir.im,記得是安裝了fir-plugin才有這個拢驾。

WechatIMG38.jpeg
WechatIMG39.jpeg

fir.im Token是fir平臺的給你賬號唯一token奖磁,如果沒有去生成一下
IPA/APK Files (optional)二進制包的路徑,可選的繁疤,如果上面ipa的輸出路徑是${WORKSPACE}/build/的話這里可以不填咖为,我的就是。如果是自定義的輸出路徑的話可能需要稠腊,我暫時還沒有測試這里

WechatIMG40.jpeg

最后填寫保存就可以去構(gòu)建啦啦啦啦啦~~~

6.構(gòu)建

WechatIMG41.jpeg

回來主頁面后選擇立即構(gòu)建躁染,就可以看到構(gòu)建的進度了,配置就是剛剛的那些構(gòu)建的配置架忌,可以進去修改
下面的build history就是我們的構(gòu)建歷史了吞彤,如果是紅色的就是構(gòu)建失敗,如果是藍(lán)色的就是構(gòu)建成功叹放,點擊小球可以進去看構(gòu)建的日志饰恕,查看失敗的原因。好啦井仰,今天就到這里了埋嵌,shell腳本構(gòu)建還不會,有是時間研究會了再補上俱恶,然后后面會補上本人遇到的坑雹嗦,都是淚~~~~~~~

WechatIMG42.jpeg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市速那,隨后出現(xiàn)的幾起案子俐银,更是在濱河造成了極大的恐慌,老刑警劉巖端仰,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捶惜,死亡現(xiàn)場離奇詭異,居然都是意外死亡荔烧,警方通過查閱死者的電腦和手機吱七,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門汽久,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人踊餐,你說我怎么就攤上這事景醇。” “怎么了吝岭?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵三痰,是天一觀的道長。 經(jīng)常有香客問我窜管,道長散劫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任幕帆,我火速辦了婚禮获搏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘失乾。我一直安慰自己常熙,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布碱茁。 她就那樣靜靜地躺著裸卫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪早芭。 梳的紋絲不亂的頭發(fā)上彼城,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機與錄音退个,去河邊找鬼募壕。 笑死,一個胖子當(dāng)著我的面吹牛语盈,可吹牛的內(nèi)容都是我干的舱馅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼刀荒,長吁一口氣:“原來是場噩夢啊……” “哼代嗤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起缠借,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤干毅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后泼返,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體硝逢,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了渠鸽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叫乌。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖徽缚,靈堂內(nèi)的尸體忽然破棺而出憨奸,到底是詐尸還是另有隱情,我是刑警寧澤凿试,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布排宰,位于F島的核電站,受9級特大地震影響红省,放射性物質(zhì)發(fā)生泄漏额各。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一吧恃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧麻诀,春花似錦痕寓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至呻引,卻和暖如春礼仗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逻悠。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工元践, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人童谒。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓单旁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親饥伊。 傳聞我的和親對象是個殘疾皇子象浑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

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