iOS持續(xù)集成使用Jenkins實現(xiàn)自動化打包

Jenkins是一款由Java編寫的開源的持續(xù)集成工具厢拭。Jenkins運(yùn)行依賴Java JDK,如果你未安裝JDK,需要先去安裝。

Jenkins啟動頁面

一:安裝Jenkins

首先我們安裝Jenkins蓬豁,我們可以通過Homebrew安裝,也可以通過客戶端安裝菇肃,這里推薦大家使用Homebrew安裝地粪,因為通過客戶端安裝,后面配置過程中琐谤,你可能會遇到權(quán)限配置問題蟆技。

如果你的Mac未安裝Homebrew,需要先安裝Homebrew斗忌。

1.安裝Homebrew质礼,在終端輸入(如果已安裝,可跳過):

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2.安裝Jenkins织阳,在終端輸入安裝命令:

brew install jenkins

安裝成功結(jié)果:

Jenkins安裝成功

可以看到結(jié)果提示几苍,如果想在開機(jī)就啟動Jenkins,可以使用命令 brew services start jenkins 來啟動Jenkins陈哑,否則直接使用命令 jenkins 來啟動。

二:啟動Jenkins

1.在終端輸入啟動命令:

jenkins

第一次啟動Jenkins,終端會打印出Jenkins管理員初始登錄密碼惊窖,復(fù)制這個密碼刽宪,我們后面要使用

啟動Jenkins

2.在瀏覽器輸入:http://localhost:8080,訪問Jenkins主頁界酒。結(jié)果如下:

啟動Jenkins

根據(jù)頁面提示我們可以在路徑 /Users/wf/.jenkins/secrets/initialAdminPassword 文件里找到Jenkins初始登錄密碼圣拄,也可以使用我們上一步復(fù)制的密碼。這兩處的密碼是一樣的毁欣。

3.在上一步輸入密碼庇谆,然后點擊“繼續(xù)”,進(jìn)入插件安裝頁面

啟動Jenkins

我們點擊第一個”安裝推薦的插件”(這里推薦選擇第一個凭疮,我們安裝Jenkins推薦的所有插件饭耳,否則后面我們要一個一個去安裝好多插件),選擇之后進(jìn)入安裝頁面

Jenkins安裝中...

插件安裝中执解,這里需要點時間寞肖,稍等一會。

4.安裝成功后衰腌,我們需要創(chuàng)建一個管理員用戶

創(chuàng)建Jenkins管理員

填寫你想輸入的信息新蟆,然后“保存并完成”,進(jìn)入下一個頁面(這里你可以在你的記事本上把用戶名和密碼備份一下右蕊,如果你忘記了琼稻,后面再配置的話,會很麻煩)

5.實例配置使用默認(rèn)饶囚,不用修改帕翻,然后“保存并完成”。進(jìn)入下一個頁面

Jenkins實例配置

6.開始頁面坯约,點擊“開始使用jenkins”

開始使用jenkins

三:進(jìn)入Jenkins主頁

Jenkins主頁

1.在創(chuàng)建新任務(wù)之前熊咽,我們先安裝一個插件。點擊左側(cè)的 Manage Jenkins -> Manage Plugins(插件管理)

Manage Jenkins
Manage Plugins(插件管理)

2.選擇可選插件闹丐,在右上角搜索框横殴,輸入插件名稱:Git Parameter,然后勾選卿拴,點擊“直接安裝”

Git Parameter

安裝成功后衫仑,返回首頁

四:創(chuàng)建任務(wù)

1.點擊“創(chuàng)建一個新任務(wù)”,進(jìn)入創(chuàng)建頁面

創(chuàng)建任務(wù)

2.輸入項目名稱堕花,選擇 Freestyle project(構(gòu)建一個自由風(fēng)格的項目) 文狱,然后”確定”,進(jìn)入配置頁面

創(chuàng)建任務(wù)

General配置

輸入簡單的項目描述

項目描述

源碼管理配置

1.在左側(cè)勾選Git缘挽,然后輸入你項目的Git倉庫地址瞄崇。然后我們需要添加一個賬號(這里的賬號就是你Git的用戶名和密碼呻粹,Jenkins會用來登錄Git倉庫拉取代碼),點擊“添加”

源碼管理

2.添加頁面:輸入Git用戶名和密碼苏研,點擊”添加“等浊。

添加賬號

3.添加成功后,然后選擇你剛才添加的賬號摹蘑。在分支欄你可以修改分支名稱筹燕,這里我們先使用master,后面我們會做成動態(tài)的衅鹿,根據(jù)用戶手選分支撒踪,而不是寫死。

添加賬號

4.修改超時時間:如果你的工程比較大大渤,那么建議修改一下Git的克隆和拉取時間制妄,不然Jenkins拉取代碼的時候會超時。在下面點擊”新增“->選擇”Advanced Clone behaviours“

Advanced Clone behaviours

然后根據(jù)下面兼犯,輸入配置信息

修改超時時間

構(gòu)建配置

在構(gòu)建配置選擇 Execute shell忍捡,然后輸入打包命令。打包命令可以去這里下載切黔。具體的iOS打包命令含義可以去這里學(xué)習(xí)iOS自動打包ipa砸脊。

Execute shell

輸入構(gòu)建命令

構(gòu)建命令

然后保存,回到項目首頁纬霞。

五:構(gòu)建項目

1.點擊左側(cè) Build Now(立即構(gòu)建)

構(gòu)建項目

2.構(gòu)建中...

構(gòu)建中...

3.構(gòu)建成功凌埂,此時打開你的蒲公英,就會看到剛才打的新包

構(gòu)建成功

六:參數(shù)化構(gòu)建

經(jīng)過上面的步驟我們已經(jīng)可以實現(xiàn)自動化打包诗芜,并上傳到蒲公英瞳抓。可是實際上的需求是:我們希望打包的時候可以手動選擇某個分支伏恐,然后再選擇某個環(huán)境孩哑,然后再自動化構(gòu)建對應(yīng)的包。這時就需要使用參數(shù)化構(gòu)建翠桦。

1.點擊左側(cè)”配置“横蜒,我們重新進(jìn)入剛才的配置頁面

配置

2.勾選參數(shù)化構(gòu)建

參數(shù)化構(gòu)建

添加參數(shù),選擇Git Parameter

Git Parameter

然后配置Git構(gòu)建參數(shù)信息:

Git Parameter

再次添加參數(shù)销凑,選擇Choice Parameter

Choice Parameter

配置打包環(huán)境參數(shù)信息

打包環(huán)境參數(shù)

3.修改源碼管理丛晌,將分支名稱修改為我們上面Git Parameter里配置的Key名稱(其實代表的就是分支名稱)

Git Parameter

4.然后修改打包腳本,我們可以根據(jù)上面設(shè)置的名稱 SRERVICE_ENVIRONMENT 來獲取用戶選擇的環(huán)境斗幼,然后我們需要根據(jù)環(huán)境修改對應(yīng)的代碼澎蛛。這里有兩種方式:

第一種:多Target打包,每個環(huán)境對應(yīng)一個Target蜕窿,我們打包的時候谋逻,根據(jù)SRERVICE_ENVIRONMENT的值打?qū)?yīng)的Target就可以呆馁。

第二種:根據(jù)SRERVICE_ENVIRONMENT,我們修改對應(yīng)環(huán)境的代碼毁兆。

這里我們使用第二種方法:

先看項目里的代碼智哀,我們的目的就是通過腳本修改常量 ENVIRONMENT 的值,看代碼我們可以修改為DEV荧恍、TEST、Production 其中一項屯吊,變量 appEnv 會根據(jù)?ENVIRONMENT 的值返回對應(yīng)的環(huán)境送巡。

AppEnv.swift

看了代碼,其實也就明白了盒卸,上面配置的打包環(huán)境字符串參數(shù)的值和代碼里字符串值是對應(yīng)的

AppEnv.swift

5.我們加入了分支選擇和環(huán)境選擇骗爆,所以需要修改打包腳本,去這里下載

腳本

腳本講解

腳本一:file_app_path是要修改代碼的swift文件路徑蔽介,也就是我們會使用腳本修改這個文件里的?ENVIRONMENT 常量的值摘投。

file_app_path="./Test/AppEnv.swift"

AppEnv.swift

腳本二:找到我們要修改代碼的swift文件,然后將 默認(rèn)的字符串SRERVICE_ENVIRONMENT修改為打包時所選對應(yīng)的定義好的字符串虹蓄。

# 更改打包環(huán)境

environment="SRERVICE_ENVIRONMENT"

target_environment=${SRERVICE_ENVIRONMENT}

sed -i '' 's/'${environment}'/'${target_environment}'/g' $file_app_path

environment變量:是我們項目里默認(rèn)的字符串

target_environment變量:是我們上面選擇的環(huán)境對應(yīng)的字符串

最后一行腳本的作用就是替換犀呼,將 environment 替換為 target_environment 。

腳本三:再打包完成之后薇组,我們又將字符串替換回去外臂,相當(dāng)于恢復(fù)我們剛剛修改的代碼,剛好和上面的相反

# 更改打包環(huán)境

sed -i '' 's/'${target_environment}'/'${environment}'/g' $file_app_path

然后保存律胀,此時之前的 Build Now 已經(jīng)變成 Build with Parameters宋光,點擊

6.然后保存,回到項目首頁炭菌。

七:再次構(gòu)建項目

在左側(cè)選擇”Build with parameters“罪佳,然后選擇對應(yīng)的分支,對應(yīng)的環(huán)境黑低,開始構(gòu)建

構(gòu)建成功赘艳,再次打開你的蒲公英,就會看到剛才打的指定分支投储、指定環(huán)境的新包第练。

你也可以擴(kuò)展一些其他功能,比如打包完成后玛荞,給測試人員發(fā)送郵件娇掏。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市勋眯,隨后出現(xiàn)的幾起案子婴梧,更是在濱河造成了極大的恐慌下梢,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件塞蹭,死亡現(xiàn)場離奇詭異孽江,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)番电,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門岗屏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人漱办,你說我怎么就攤上這事这刷。” “怎么了娩井?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵暇屋,是天一觀的道長喝检。 經(jīng)常有香客問我栽烂,道長,這世上最難降的妖魔是什么度帮? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任扬霜,我火速辦了婚禮定鸟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘畜挥。我一直安慰自己仔粥,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布蟹但。 她就那樣靜靜地躺著躯泰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪华糖。 梳的紋絲不亂的頭發(fā)上麦向,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機(jī)與錄音客叉,去河邊找鬼诵竭。 笑死,一個胖子當(dāng)著我的面吹牛兼搏,可吹牛的內(nèi)容都是我干的卵慰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼佛呻,長吁一口氣:“原來是場噩夢啊……” “哼裳朋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起吓著,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鲤嫡,失蹤者是張志新(化名)和其女友劉穎送挑,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體暖眼,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡惕耕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了诫肠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片司澎。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖栋豫,靈堂內(nèi)的尸體忽然破棺而出惭缰,到底是詐尸還是另有隱情,我是刑警寧澤笼才,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站络凿,受9級特大地震影響骡送,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜絮记,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一摔踱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧怨愤,春花似錦派敷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至差导,卻和暖如春试躏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背设褐。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工颠蕴, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人助析。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓犀被,卻偏偏與公主長得像,于是被迫代替她去往敵國和親外冀。 傳聞我的和親對象是個殘疾皇子寡键,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355

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