【iOS 開(kāi)發(fā)】使用 Jenkins + Fastlane 持續(xù)集成 iOS 項(xiàng)目

Jenkins

持續(xù)集成(Continuous Integration 簡(jiǎn)稱(chēng) CI)份名。Jenkins 是一個(gè)開(kāi)源項(xiàng)目,提供了一種易于使用的持續(xù)集成系統(tǒng),使開(kāi)發(fā)者從繁雜的集成中解脫出來(lái)栋操,專(zhuān)注于更為重要的業(yè)務(wù)邏輯實(shí)現(xiàn)上。具體就不多說(shuō)了饱亮,想要更多的了解可以去查一下矾芙,下面是集成方法。


本文最終目的:

  • 測(cè)試人員可登錄 Jenkins 網(wǎng)頁(yè)自行選擇 開(kāi)發(fā)分支打包類(lèi)型 近上,然后自動(dòng)打包完成并自動(dòng)上傳至 蒲公英iTunes Connect 剔宪,不再需要開(kāi)發(fā)人員手動(dòng)安裝或上傳。

1. 配置 Fastlane

由于項(xiàng)目的編譯打包以及上傳全部要依賴 Fastlane 來(lái)進(jìn)行壹无,所以在配置 Jenkins 之前要保證項(xiàng)目已經(jīng)配置好了 Fastlane 葱绒,這里看我的另一篇文章:【iOS 開(kāi)發(fā)】使用 Fastlane 自動(dòng)化打包并發(fā)布 iOS 項(xiàng)目

2. 安裝 Jenkins

  • Jenkins 依賴于 Java 運(yùn)行環(huán)境斗锭,因此需要先保證電腦已經(jīng)安裝了 Java JDK 地淀,如果沒(méi)有的話前往 這里 下載安裝即可。

  • 我這里是使用 homebrew 安裝 Jenkins 岖是,沒(méi)有安裝 homebrew 的輸入以下命令安裝一下帮毁。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 千萬(wàn)不要去 Jenkins 官網(wǎng)下載 pkg 安裝包安裝,因?yàn)橛冒惭b包安裝會(huì)自動(dòng)生成一個(gè)共享用戶 jenkins豺撑,而這個(gè)用戶的權(quán)限和系統(tǒng)登錄用戶的權(quán)限不同作箍,會(huì)造成大量的權(quán)限問(wèn)題,我已經(jīng)被坑慘了前硫,用 homebrew 裝是不會(huì)生成共享用戶的胞得。

  • homebrew 安裝完成后輸入以下命令安裝 Jenkins

brew install jenkins
安裝
  • 如果想要卸載直接執(zhí)行以下命令即可卸載 Jenkins 屹电。
brew uninstall jenkins
  • 安裝完成后輸入以下命令鏈接 launchd 配置文件阶剑。
ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
  • 然后執(zhí)行以下命令啟動(dòng) Jenkins
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
  • Jenkins 默認(rèn)是開(kāi)機(jī)自動(dòng)啟動(dòng)的危号,如果想關(guān)閉就執(zhí)行以下命令即可關(guān)閉牧愁。
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
  • 接著打開(kāi)瀏覽器,輸入 http://localhost:8080 外莲,就可以看到 Jenkins 已經(jīng)啟動(dòng)猪半。
Jenkins
  • Jenkins 默認(rèn)端口號(hào)是 8080 兔朦,如果想要更改端口號(hào)的話可以用 Xcode 打開(kāi)以下文件,將 httpPort 后面的 8080 改成你想要的端口號(hào)即可磨确,如果想要?jiǎng)e人訪問(wèn)你的 Jenkins 服務(wù)器沽甥,只要把 httpListenAddress 改為 0.0.0.0 即可,改完重啟后生效乏奥。
/usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist
修改端口

3. 配置 Jenkins

  • 等待啟動(dòng)完成后 摆舟,會(huì)出現(xiàn)以下界面讓你輸入密碼解鎖。
Jenkins
  • 密碼就在上面提示的 /Users/Jonzzs/.jenkins/secrets/initialAdminPassword 文件中邓了,打開(kāi) initialAdminPassword 文件將密碼復(fù)制到瀏覽器解鎖即可恨诱,然后點(diǎn)擊第一個(gè) Install suggested plugins
Jenkins
  • 然后等待插件全部安裝完成骗炉。
Jenkins
  • 安裝完成后會(huì)跳出創(chuàng)建用戶界面照宝,按照提示創(chuàng)建用戶即可。
Jenkins
  • 最后到這個(gè)頁(yè)面就算是安裝完成了句葵。
Jenkins

4. 安裝插件

  • 在建任務(wù)之前需要先安裝幾個(gè)插件硫豆,前往 系統(tǒng)管理 - 管理插件 ,在 可選插件 中搜索 GitLab Plugin 笼呆、Gitlab Hook Plugin 熊响、Xcode integration 這三個(gè)插件,然后安裝诗赌。
Jenkins

5. 配置環(huán)境變量

  • 前往 系統(tǒng)管理 - 系統(tǒng)設(shè)置 找到 全局屬性 汗茄,然后添加以下三個(gè)環(huán)境變量。
LANG
en_US.UTF-8
LANGUAGE
en_US.UTF-8
LC_ALL
en_US.UTF-8
環(huán)境變量
  • 這三個(gè)環(huán)境變量是用來(lái)修改編碼格式的铭若,如果不加下面腳本執(zhí)行 fastlane 命令時(shí)會(huì)報(bào)錯(cuò)洪碳。

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

  • 插件安裝完成以后就可以開(kāi)始創(chuàng)建項(xiàng)目了,點(diǎn)擊新建任務(wù)叼屠,輸入你的項(xiàng)目名稱(chēng)瞳腌。
Jenkins
  • 勾選 參數(shù)化構(gòu)建過(guò)程 ,添加一個(gè) String Parameter 和一個(gè) Choice Parameter 镜雨,第一個(gè) ARCHIVE_BRANCH 主要是輸入要打包的項(xiàng)目分支嫂侍,第二個(gè) ARCHIVE_TYPE 是選擇打包的類(lèi)型,我這邊 beta 是打包發(fā)布到 蒲公英 荚坞,release 是打包發(fā)布到 iTunes Connect 挑宠,如果你不需要這些參數(shù)可以跳過(guò)。
Jenkins
  • 源碼管理 輸入你的倉(cāng)庫(kù)地址颓影,地址為 SSH 方式各淀,然后需要在點(diǎn)擊 Add 添加 SSH Key
Jenkins
  • 選擇 SSH Username with private key 類(lèi)型诡挂,Username 隨便填碎浇,然后選擇 From the Jenkins master ~/.ssh 临谱,添加完之后在 Credentials 那里選擇即可。
Jenkins
  • 如果自己電腦沒(méi)有生成過(guò) SSH Key 奴璃,就自己去查一下吧悉默,這里就不重復(fù)了。

  • 最后在 構(gòu)建 中增加一個(gè) Execute Shell 溺健,主要用來(lái)填寫(xiě)腳本內(nèi)容麦牺。

Jenkins
  • 填寫(xiě)以下腳本命令钮蛛,xxx 處填寫(xiě)自己項(xiàng)目相應(yīng)文件夾名鞭缭,因?yàn)樵趫?zhí)行 fastlane 指令之前需要進(jìn)入 fastlane 文件夾所在目錄,如果你的 git 根目錄就是在項(xiàng)目目錄的話魏颓,可以不用這句岭辣,然后點(diǎn)擊 保存 即可。
git checkout ${ARCHIVE_BRANCH}
git pull
cd ./xxx
fastlane ${ARCHIVE_TYPE}

7. 開(kāi)始打包

  • 進(jìn)入你創(chuàng)建的任務(wù)甸饱,點(diǎn)擊 Build with Parameters 沦童,然后輸入要打包的項(xiàng)目分支以及類(lèi)型,然后點(diǎn)擊 開(kāi)始構(gòu)建 即可開(kāi)始打包叹话。
Jenkins
  • 如果構(gòu)建失敗偷遗,也可以在 Build History 中點(diǎn)擊 Console Output 查看控制臺(tái)輸出記錄,找到錯(cuò)誤原因驼壶。
Jenkins

配置方法到這里就完成了氏豌,有不明白的地方可以留言。

將來(lái)的你热凹,一定會(huì)感激現(xiàn)在拼命的自己泵喘,愿自己與讀者的開(kāi)發(fā)之路無(wú)限美好。

我的傳送門(mén): 博客 般妙、簡(jiǎn)書(shū) 纪铺、微博GitHub 碟渺。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鲜锚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子苫拍,更是在濱河造成了極大的恐慌烹棉,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怯疤,死亡現(xiàn)場(chǎng)離奇詭異浆洗,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)集峦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén)伏社,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)抠刺,“玉大人,你說(shuō)我怎么就攤上這事摘昌∷傺” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵聪黎,是天一觀的道長(zhǎng)罕容。 經(jīng)常有香客問(wèn)我,道長(zhǎng)稿饰,這世上最難降的妖魔是什么锦秒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮喉镰,結(jié)果婚禮上旅择,老公的妹妹穿的比我還像新娘。我一直安慰自己侣姆,他們只是感情好生真,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著捺宗,像睡著了一般柱蟀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蚜厉,一...
    開(kāi)封第一講書(shū)人閱讀 49,730評(píng)論 1 289
  • 那天长已,我揣著相機(jī)與錄音,去河邊找鬼弯囊。 笑死痰哨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的匾嘱。 我是一名探鬼主播斤斧,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼霎烙!你這毒婦竟也來(lái)了撬讽?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤悬垃,失蹤者是張志新(化名)和其女友劉穎游昼,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體尝蠕,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡烘豌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了看彼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片廊佩。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡囚聚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出标锄,到底是詐尸還是另有隱情顽铸,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布料皇,位于F島的核電站谓松,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏践剂。R本人自食惡果不足惜鬼譬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舷手。 院中可真熱鬧拧簸,春花似錦劲绪、人聲如沸男窟。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)歉眷。三九已至,卻和暖如春颤枪,著一層夾襖步出監(jiān)牢的瞬間汗捡,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工畏纲, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扇住,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓盗胀,卻偏偏與公主長(zhǎng)得像艘蹋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子票灰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

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