Jenkins+xcode+SVN+fir自動打包

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

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

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

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

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

3.隨時可部署

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

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

我們可以犯錯誤,但是犯低級錯誤就很不應該。這里指的低級錯誤包括以下幾點:編譯錯誤,安裝問題,接口問題,性能問題。
以天為單位的持續(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的初始頁面了(如果不能打開應該是JDK環(huán)境沒有安裝好,重新下載最新的JDK安裝一下,也有可能是8080端口被占用了)


這里需要一個初始密碼,頁面中的紅色字體也標出了該密碼文件的路徑,不過一開始該文件是沒有讀寫權限的,需要先到找到/Users/Shared/Jenkins/Home/ 這個目錄下,改了/secrets/目錄的讀寫權限,右鍵顯示簡介,然后點擊鎖就可以改權限了。同樣的把/secrets/目錄里面的initialAdminPassword文件的權限改了,就可以打開initialAdminPassword文件獲取密碼了。
WechatIMG8.jpeg

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

WechatIMG9.jpeg

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

WechatIMG10.jpeg

選擇了第一個安裝默認的插件的話如圖(我第一次安裝時就選擇了安裝推薦插件,但是等了很久,后來直接卡死了,于是我只能卸掉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,插件安裝完畢了,下一步的準備工作是證書的導入,同樣是系統(tǒng)管理--->Keychains and Provisioning Profiles Management(注意這個是安裝了Keychains and Provisioning Profiles Management插件后才會有的)

WechatIMG18.jpeg

然后進來證書設置頁面,前往~/Library/keyChains/ 找到login.keychain文件,拖進來證書安裝頁面,點擊upload上傳,會出現(xiàn)設置密碼,填電腦密碼和證書的名字。(這里有可能沒有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到這里我們的證書就配置完畢啦可以愉快的去構建項目啦~~~~


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

5.Jenkins構建項目

回到Jenkins的首頁--->新建-->填寫項目名稱,這個自己喜歡!,選擇構建項目類型,選擇一個自由風格的項目,next Ok

WechatIMG24.jpeg

1.General默認都不選就好,具體的作用可以點擊?都有詳細的說明

WechatIMG25.jpeg

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

WechatIMG26.jpeg
WechatIMG27.jpeg
WechatIMG28.jpeg

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

WechatIMG29.jpeg

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

WechatIMG30.jpeg

5.構建,增加構建步驟里面選擇Xcode

WechatIMG31.jpeg
WechatIMG32.jpeg
WechatIMG33.jpeg

這里的輸出路徑 ${WORKSPACE}/build/ WORKSPACE指的是當前的工作路徑,也可以自定義輸出路徑,其他的可以不用設置

WechatIMG34.jpeg

接著設置keychain,path填寫/Users/Shared/Jenkins/Library/Keychains/login.keychain,這個是固定的,就是我們剛剛他證書復制進來的路徑,然后填寫密碼,密碼是電腦的開機密碼注意!?。?!

WechatIMG36.jpeg

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

WechatIMG37.jpeg

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

6.構成成功后的操作,上傳到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

最后填寫保存就可以去構建啦啦啦啦啦~~~

6.構建

WechatIMG41.jpeg

回來主頁面后選擇立即構建,就可以看到構建的進度了,配置就是剛剛的那些構建的配置,可以進去修改
下面的build history就是我們的構建歷史了,如果是紅色的就是構建失敗,如果是藍色的就是構建成功,點擊小球可以進去看構建的日志,查看失敗的原因。好啦,今天就到這里了,shell腳本構建還不會,有是時間研究會了再補上,然后后面會補上本人遇到的坑,都是淚~~~~~~~

WechatIMG42.jpeg
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容