macOS Jenkins Fastlane

前段時(shí)間被手動(dòng)打包煩住了店乐,就用另外一臺(tái)Air搭建了自動(dòng)打包上傳環(huán)境禾酱,記錄如下:


首先編譯環(huán)境是需要的涣雕,這里是iOS應(yīng)用四苇,只需安裝Xcode和命令行工具xcode-select --install已骇。


安裝Fastlane自動(dòng)化工具集sudo gem install fastlane离钝。完成后進(jìn)入項(xiàng)目所在目錄配置Fastlane

cd ... #項(xiàng)目所在路徑
fastlane init 

在國(guó)內(nèi)會(huì)出現(xiàn)停留在bundle update畫面,如下


這是由于Ruby源被墻的問題。直接結(jié)束命令進(jìn)入項(xiàng)目目錄褪储,會(huì)多出一個(gè)文件夾fastlane和文件Gemfile卵渴。編輯Gemfile修改sourcehttp://gems.ruby-china.com。由于只用于測(cè)試打包鲤竹,不進(jìn)行Appfile文件處理浪读,只編輯任務(wù)文件Fastfile:

default_platform(:ios)

platform :ios do
  desc "iOS Test Enviroment Archieve"
  lane :ci do|options|
    puts "Start ..."
    branch = options[:branch]
    ipa_name = options[:name]

    #確認(rèn)分支、git狀態(tài)辛藻、拉取最新代碼, 由于Git環(huán)境原因注釋了下面2行檢查操作
#sh "git checkout #{branch}"
    ensure_git_branch(branch: branch)
#ensure_git_status_clean
    git_pull

    build_ios_app(
        configuration: "Debug",
        silent: true,
        export_method: "development",
        output_directory: "~/Desktop/Out",
        output_name: "#{ipa_name}"
    )

    sh "~/Desktop/Out/commit.sh ~/Desktop/Out "
    puts "Finish upload!"
  end
end

注意export_method方法如果不填寫碘橘,默認(rèn)構(gòu)建為AppStore的包,需要配置蘋果開發(fā)者信息吱肌。這里用于測(cè)試痘拆,填寫為development
腳本中lane :ci do|options| 注意這個(gè)opthions的位置氮墨,后面則可以使用branch = options[:branch]進(jìn)行輸入?yún)?shù)引用纺蛆。
腳本中用到的commit.shshell腳本,用于上傳打好的包到分發(fā)服務(wù)器勇边。如下:

#!/bin/bash

if test -z $1
then
   echo "Not change path."
else
   cd $1
fi

rm -rf .git

git init
git add *
git commit -m "Z"
git remote add origin https://.../XXX.git
git push -u origin master --force

現(xiàn)在這樣一個(gè)行為集「拉取master分支最新的代碼犹撒,打包為ABC.ipa并上傳到分發(fā)服務(wù)器」,只需要到項(xiàng)目目錄執(zhí)行如下命令:fastlane ios ci branch:master name:ABC


有了自動(dòng)打包環(huán)境現(xiàn)在需要遠(yuǎn)程控制粒褒,安裝Jenkins识颊。有兩種方式,一種是DMG包安裝奕坟;一種是Jar包直接運(yùn)行(此方式在當(dāng)前用戶的目錄下創(chuàng)建文件祥款,權(quán)限不會(huì)受到影響)。先講Jar包運(yùn)行方式后續(xù)闡述DMG方式月杉。
注意Jenkins運(yùn)行需要的Java環(huán)境刃跛,12的版本不支持,需要退到11以前苛萎。
在Jenkins下載jenkins.war包桨昙,運(yùn)行java -jar jenkins.war命令后检号,服務(wù)就會(huì)開啟。
打開瀏覽器進(jìn)入http://localhost:8080/蛙酪,第一次會(huì)要求輸入密碼Unlock Jenkins齐苛、安裝需要的插件和創(chuàng)建管理者賬號(hào)。注意包含解鎖密碼的文件所在路徑在網(wǎng)頁(yè)上有標(biāo)識(shí)桂塞,直接復(fù)制里面內(nèi)容輸入就行凹蜂,對(duì)于插件安裝建議的就行,后面創(chuàng)建管理者賬號(hào)也很簡(jiǎn)單阁危。完成后進(jìn)入主面板建立需要的任務(wù)玛痊,點(diǎn)擊新建,輸入任務(wù)名后選擇構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目(由于需求只是進(jìn)入項(xiàng)目目錄后執(zhí)行Fastlane命令)狂打,點(diǎn)擊確定進(jìn)入配置頁(yè)面擂煞,只需在構(gòu)建模塊下點(diǎn)擊增加構(gòu)建步驟,選擇執(zhí)行 shell趴乡,輸入命令:

cd ... #項(xiàng)目所在路徑
fastlane ios ci branch:master name:ABC

點(diǎn)擊保存,Jenkins任務(wù)就配置完成了(砍柴用了青龍刀...)颈娜。在其他電腦上用瀏覽器打開http://Jenkins安裝電腦IP地址:8080/登錄后,選擇前面建立的任務(wù)浙宜,點(diǎn)擊構(gòu)建官辽,等待打包上傳完成。


下面只是一些閑談粟瞬,可以忽略同仆。故事到此就結(jié)束了嗎?下面才是寫這個(gè)隨筆的原因裙品。DMG安裝包安裝Jenkins遇到的問題俗批。在官網(wǎng)下載Jenkins安裝包后,點(diǎn)擊安裝后市怎,會(huì)在操作系統(tǒng)上創(chuàng)建名為Jenkins的用戶岁忘,進(jìn)入系統(tǒng)登錄界面就能看見,正確的做法是用這個(gè)賬號(hào)登錄区匠,進(jìn)行前面Jar包相應(yīng)的操作干像,一切都會(huì)正常。由于我們的項(xiàng)目文件已經(jīng)在特定的用戶目錄下驰弄,所有會(huì)出現(xiàn)下面的一些問題麻汰。

  • 在Jenkins的任務(wù)配置下添加的cd命令不能得以執(zhí)行,首先想到是權(quán)限問題戚篙,我們就用管理員的命令運(yùn)行sudo cd ...五鲫,得到錯(cuò)誤信息sudo: no tty present and no askpass program specified,需要配置Jenkins運(yùn)行sudo命令不需要密碼岔擂,終端中執(zhí)行命令sudo visudo位喂,添加配置jenkins ALL=(ALL) NOPASSWD: ALL到文件末尾浪耘,保存,重啟Jenkins服務(wù)塑崖。
  • 能執(zhí)行sudo cd操作后点待,但沒有真實(shí)切換到指定的目錄,通過echo $PWD不對(duì)弃舒, 嘗試了軟連接ln -s 也不行。再嘗試把操作移動(dòng)到腳本中去執(zhí)行状原,Jenkins直接執(zhí)行腳本bash xx.sh聋呢,腳本內(nèi)容如下:
sudo cd ... #項(xiàng)目目錄
echo $PWD
fastlane ios ci branch:master name:ABC

現(xiàn)在能成功切換,echo 也是正確的值颠区。

  • 完成上面的步驟削锰,繼續(xù)操作出現(xiàn)問題fastlane command not found,環(huán)境變量的問題毕莱,配置Jenkins的環(huán)境變量器贩。在終端打印出環(huán)境變量進(jìn)行復(fù)制echo $PATH,進(jìn)入Jenkins控制面板朋截,點(diǎn)擊系統(tǒng)管理蛹稍,點(diǎn)擊系統(tǒng)設(shè)置,在全局屬性模塊部服,勾選環(huán)境變量唆姐,添加鍵「Path」和值「前面復(fù)制的」,點(diǎn)擊頁(yè)面底部的保存±耍現(xiàn)在執(zhí)行Jenkins構(gòu)建任務(wù)奉芦,fastlane命令也能成功找到。但fastlane執(zhí)行中出現(xiàn)各種方法錯(cuò)誤剧蹂,放棄声功,切回到Jar的方式。

看下面的Refs比上面的好看多了^_^
Refs:
Jenkins Sudo 問題
Jenkins 環(huán)境變量配置

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宠叼,一起剝皮案震驚了整個(gè)濱河市先巴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌冒冬,老刑警劉巖筹裕,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異窄驹,居然都是意外死亡朝卒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門乐埠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抗斤,“玉大人囚企,你說我怎么就攤上這事∪鹧郏” “怎么了龙宏?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)伤疙。 經(jīng)常有香客問我银酗,道長(zhǎng),這世上最難降的妖魔是什么徒像? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任黍特,我火速辦了婚禮,結(jié)果婚禮上锯蛀,老公的妹妹穿的比我還像新娘灭衷。我一直安慰自己,他們只是感情好旁涤,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布翔曲。 她就那樣靜靜地躺著,像睡著了一般劈愚。 火紅的嫁衣襯著肌膚如雪瞳遍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天菌羽,我揣著相機(jī)與錄音傅蹂,去河邊找鬼。 笑死算凿,一個(gè)胖子當(dāng)著我的面吹牛份蝴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播氓轰,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼婚夫,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了署鸡?” 一聲冷哼從身側(cè)響起案糙,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎靴庆,沒想到半個(gè)月后时捌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡炉抒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年奢讨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焰薄。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拿诸,死狀恐怖扒袖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情亩码,我是刑警寧澤季率,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站描沟,受9級(jí)特大地震影響飒泻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吏廉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一泞遗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迟蜜,春花似錦、人聲如沸啡省。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)卦睹。三九已至畦戒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間结序,已是汗流浹背障斋。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留徐鹤,地道東北人垃环。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓踩窖,卻偏偏與公主長(zhǎng)得像茎芋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子塔拳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

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