IOS 自動化部署 - 最新Jenkins + git +cocoapods + fir

前言


由于工作原因爆存,近期項目需要集成Jenkins 。因此參考了網(wǎng)上很多的資料护姆,但是發(fā)現(xiàn)網(wǎng)上的資料都不是很全面矾端,都有或多或少的坑,所以在此我根據(jù)我自己個人配置的經(jīng)驗總結(jié)一下Jenkins具體的安裝及使用(如果有什么錯誤的地方請留言指正卵皂,謝謝秩铆。)。

本文內(nèi)容部分摘自:http://www.reibang.com/p/7a2efc7c69fe ? ? ? ? ?http://www.cocoachina.com/ios/20160804/17281.html灯变。


Jenkins的主要作用及特點:

作用:

1.? ? ? 持續(xù)殴玛、自動地構(gòu)建/測試軟件項目。

2. ? ? ?監(jiān)控一些定時執(zhí)行的任務(wù)添祸。

特點:

1.? ? ? 易于安裝-只要把jenkins.war部署到servlet容器滚粟,不需要數(shù)據(jù)庫支持。

2.??????易于配置-所有配置都是通過其提供的web界面實現(xiàn)刃泌。? ? 集成RSS/E-mail通過RSS發(fā)布構(gòu)建結(jié)果或當(dāng)構(gòu)建完成時通過e-mail通知凡壤。

3.??????生成JUnit/TestNG測試報告。

4.??????分布式構(gòu)建支持Jenkins能夠讓多臺計算機(jī)一起構(gòu)建/測試蔬咬。

5.??????文件識別:Jenkins能夠跟蹤哪次構(gòu)建生成哪些jar鲤遥,哪次構(gòu)建使用哪個版本的jar等。

6.??????插件支持:支持?jǐn)U展插件林艘,你可以開發(fā)適合自己團(tuán)隊使用的工具盖奈。


配置Jenkins ?大概需要以下幾步

1.搭建Jenkins環(huán)境

2.安裝插件 、 配置證書和描述文件狐援、鑰匙串

3.配置項目

4.配置xcode 環(huán)境

5.構(gòu)建后操作


1. 搭建Jenkins 環(huán)境


從官網(wǎng)https://jenkins.io/上下載最新的pkg安裝包钢坦,選擇 MAC OS。


安裝完成之后啥酱,Safari可能會自動打開爹凹,如果沒有自動打開,打開瀏覽器镶殷,輸入http://localhost:8080?(這個時候可能會打不開網(wǎng)頁 ?請關(guān)閉防火墻開放8080端口)

這個時候如果你重啟電腦會發(fā)現(xiàn)Jenkins給你新增了一個用戶禾酱,名字就叫Jenkins,不過這個時候你不知道密碼绘趋。你可能會去試密碼颤陶,肯定是是不對的,因為初始密碼很復(fù)雜陷遮。這個時候正確做法是打開http://localhost:8080 會出現(xiàn)下圖的重設(shè)初始密碼的界面滓走。


按照提示,找到/Users/Shared/Jenkins/Home/ 這個目錄下帽馋,這個目錄雖然是共享目錄搅方,但是有權(quán)限的比吭,非Jenkins用戶/secrets/目錄是沒有讀寫權(quán)限的。

打開initialAdminPassword文件姨涡,復(fù)制出密碼衩藤,就可以填到網(wǎng)頁上去重置密碼了。如下圖




到這一步 Jenkins 已經(jīng)安裝完成了绣溜。


2. 安裝插件 慷彤、 配置證書和描述文件娄蔼、鑰匙串

這時需要安裝配置一下插件怖喻,系統(tǒng)管理->管理插件->可選插件


安裝GitLab插件

因為我們用的是GitLab來管理源代碼,Jenkins本身并沒有自帶GitLab插件岁诉,所以我們需要依次選擇 系統(tǒng)管理->管理插件锚沸,在“可選插件”中選中“GitLab Plugin”和“Gitlab Hook Plugin”這兩項,然后安裝涕癣。

安裝Xcode插件

同安裝GitLab插件的步驟一樣哗蜈,我們依次選擇系統(tǒng)管理->管理插件,在“可選插件”中選中“Xcode integration”安裝坠韩。

安裝Keychains and Provisioning Profiles Management 插件

因為我們打包需要證書和描述文件距潘,所以需要安裝Keychains and Provisioning Profiles Management插件 依然選擇系統(tǒng)管理->管理插件,在“可選插件”中選中“Keychains and Provisioning Profiles Management”安裝只搁。

安裝完成后我們重啟下jenkins音比,重新加載下插件∏馔铮可以滑到最底下勾選重啟洞翩,或者也可以在地址欄輸入http://localhost:8080/restart

重啟之后應(yīng)該要輸入用戶名和密碼,把剛剛注冊的用戶名密碼輸入進(jìn)去焰望。還有一個重要的步驟骚亿,我們先給Jenkins用戶管理員的權(quán)限,避免后續(xù)的訪問問題熊赖。系統(tǒng)偏好設(shè)置->用戶與群組->點開鎖来屠,然后在Jenkins用戶下勾選“允許用戶管理這臺電腦”瘸味。到這步最好給Jenkins用戶設(shè)置一個密碼馍驯,便于后期檢查是否Jenkins配置錯誤或者是檢查代碼錯誤。


接下來我們配置證書璧眠、描述文件足陨、鑰匙串

點擊系統(tǒng)管理->keychain and provision Profiles Management



這里需要注意的是 :上傳的不是證書嫂粟,需要的是描述文件和login.keychain ?

之前說過,系統(tǒng)自動生成了一個Jenkins用戶? 這個Jenkins 用于存儲一些配置文件和信息等墨缘。我們可以在finder里面找到Jenkins用戶的文件夾


下面

?1.Finder->前往文件夾->/Users/“你的mac用戶名”/library

2.找到keychains 這個文件夾星虹,拷貝

3.用上面那種方法放到Jenkins->Library文件夾下

為了避免描述文件也出現(xiàn)類似的找不到的錯誤零抬,我們也把描述文件拷貝到Jenkins用戶->Library。

1.Finder->前往文件夾->/Users/“你的mac用戶名”/library(或者還有一個方法宽涌,打開xcode->preferences->找到你賬號下的描述文件)

2.找到keychains 這個文件夾平夜,拷貝"MobileDevice"整個文件夾

3.用上面那種方法放到Jenkins->Library文件夾下。


接下來就是上傳keychain和描述文件了卸亮。

這里我們選剛剛拷貝過去的Jenkins文件目錄下的keychain和描述文件忽妒。點擊選取文件->搜索login.keychain,這里要注意下是否為Jenkins目錄下的keychain。


上傳完之后打開鑰匙串兼贸,找到需要上傳證書的名字 然后復(fù)制下來?


然后點擊 Add Code Signing Identity段直,分別把這名字粘貼過去。完成了之后大概如下:

接下來就是描述文件了溶诞。這里要注意一點鸯檬,在Provisioning Profiles填上/Users/Shared/Jenkins/Library/MobileDevice/Provisioning Profiles這個地址。然后按照上傳keychain的步驟螺垢,把Jenkins用戶目錄下的描述文件上傳上去就行啦?

下圖就是傳完大概的樣子

3. 配置項目

keychain配置好之后喧务,接下來就是新建一個工程了。輸入你的項目名稱(項目名稱會在Jenkins下生成一個文件夾)枉圃。構(gòu)建一個自由風(fēng)格的軟件項目功茴,點擊ok

1.General

新建完之后點選丟棄舊的構(gòu)建,配置一下保持構(gòu)建的天數(shù)和最大個數(shù)


2.源碼管理

然后配置源碼管理孽亲,這是Jenkins拉取代碼的地址(盡量精確到項目位置)坎穿,如果Credentials沒有,則點擊右邊的add


Repository URL 可以使用 HTTP 或 SSH 兩種形式的墨林,這里需要注意赁酝,如果是采用 HTTP 形式的話,后面配置 Credentials 需要選擇 Username with password 項旭等,輸入登錄用戶名和密碼:


如果是采用 SSH 形式的話(不要ssh://前綴)酌呆,后面配置 Credentials 需要選擇 SSH Username with private key 項,輸入用戶名(隨便輸入)和與Git上公鑰對應(yīng)的私鑰:

/Users/{username}/.ssh/id_rsa

如果紅色報錯的話搔耕,請核對Git地址和私鑰或用戶密碼對應(yīng)隙袁。

Branch Specifier (blank for 'any'):默認(rèn)是master,你可以根據(jù)實際情況進(jìn)行編輯弃榨。


3.構(gòu)建觸發(fā)器

可以選擇某種情況下觸發(fā)項目構(gòu)建菩收,也可以不選。

4.構(gòu)建環(huán)境

接下來配置構(gòu)建環(huán)境鲸睛,這里我們勾選Keychains and Code Signing Identities娜饵,選擇login.keychain,然后選擇對應(yīng)的證書名字官辈。同樣勾選Mobile Provisioning Profiles箱舞,選擇對應(yīng)的描述文件遍坟。


5.構(gòu)建


這里需要注意,如果你的項目是使用了cocoapods管理第三方庫的話晴股,這里需要增加一個腳本執(zhí)行的步驟:Execute shell -> Xcode(即下一步驟) ,順序不能錯愿伴。這是因為,新版本的Xcode不能直接構(gòu)建.xcworksapce項目电湘,需要使用腳本隔节。(PS:如果不是cocoapods管理的可以直接跳過這步)


#bin/bsah - l

export LANG=en_US.UTF-8

export LANGUAGE=en_US.UTF-8

export LC_ALL=en_US.UTF-8

cd $WORKSPACE/你的項目名稱

/usr/local/bin/pod update --verbose --no-repo-update

注意:沒有#bin/bsah - l

export LANG=en_US.UTF-8

export LANGUAGE=en_US.UTF-8

export LC_ALL=en_US.UTF-8 ? /usr/local/bin/ ?這幾句可能會造成編譯器讀不懂pod語句。當(dāng)你構(gòu)建的時候提示pod語句出錯寂呛,百分之九十都是這個錯誤怎诫。

坑提示:如果報錯 如下圖


mac注銷當(dāng)前用戶,進(jìn)入Jenkins用戶昧谊,看是否安裝了cocoapods刽虹,如果沒有安裝,需要安裝一下呢诬,并且版本要與當(dāng)前用戶一致(Jenkins用戶的密碼可以在系統(tǒng)偏好設(shè)置->用戶與群組設(shè)置。)




接下來構(gòu)建Xcode


首先配置General胖缤,這里又有一個坑I辛!D睦狗唉!輸出路徑必須是workspace路徑下的,然后會報權(quán)限不夠等之類的問題


之后是Code signing & OS X keychain options


接下來是配置 Advanced Xcode build options涡真。

tips:jenkins會在它的目錄Home->workspace下建一個文件夾分俯,這個文件夾名字就是你的項目名字(比如你的項目名字叫JenkinsProj,那么會存在Jenkins->Home->workspace->JenkinsProj這個文件夾)哆料。${WORKSPACE}一般都會到Jenkins創(chuàng)建的文件夾下缸剪。

Build output diretory 還是老實點寫在workspace下比較好,因為Jenkins創(chuàng)建的目錄我覺得足夠清晰了东亦。之前我寫在另一個用戶下就會報權(quán)限問題杏节。


注意:這個選項使用目錄系統(tǒng)已經(jīng)定位到 Jenkins目錄下 。

一般這樣配置完就可以成功打包了典阵。


5.構(gòu)建后操作 ?

文檔 ?blog.fir.im/jenkins/? ? 詳細(xì)講解了 如何打包生成二維碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奋渔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子壮啊,更是在濱河造成了極大的恐慌嫉鲸,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件歹啼,死亡現(xiàn)場離奇詭異玄渗,居然都是意外死亡减江,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門捻爷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辈灼,“玉大人,你說我怎么就攤上這事也榄⊙灿ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵甜紫,是天一觀的道長降宅。 經(jīng)常有香客問我,道長囚霸,這世上最難降的妖魔是什么腰根? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮拓型,結(jié)果婚禮上额嘿,老公的妹妹穿的比我還像新娘。我一直安慰自己劣挫,他們只是感情好册养,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著压固,像睡著了一般球拦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上帐我,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天坎炼,我揣著相機(jī)與錄音,去河邊找鬼拦键。 笑死谣光,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的矿咕。 我是一名探鬼主播抢肛,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼碳柱!你這毒婦竟也來了捡絮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤莲镣,失蹤者是張志新(化名)和其女友劉穎福稳,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瑞侮,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡的圆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年鼓拧,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片越妈。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡季俩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出梅掠,到底是詐尸還是另有隱情酌住,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布阎抒,位于F島的核電站酪我,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏且叁。R本人自食惡果不足惜都哭,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望逞带。 院中可真熱鬧欺矫,春花似錦、人聲如沸掰担。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽带饱。三九已至,卻和暖如春阅羹,著一層夾襖步出監(jiān)牢的瞬間勺疼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工捏鱼, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留执庐,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓导梆,卻偏偏與公主長得像轨淌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子看尼,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

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