iOS使用fastlane和jenkins進(jìn)行自動(dòng)打包并上傳到蒲公英

前言

年后有感于為業(yè)務(wù)和測(cè)試部門頻繁的打包嫉晶,太過(guò)于影響開發(fā)骑疆,就嘗試搭建了一個(gè)自動(dòng)化打包的平臺(tái),把自己從繁瑣的打包中解救出來(lái)替废。

本文主要用了fastlane和jenkins上傳到蒲公英箍铭,需要發(fā)布到App Store可以去參考一下其他文章。

fastlane安裝

在搭建的過(guò)程中我主要參考了iOS自動(dòng)化打包發(fā)布(Jenkins + Fastlane + GitLab + 蒲公英) - 簡(jiǎn)書椎镣,其中fastlane的安裝在這篇文章寫的簡(jiǎn)單明了诈火,在這里我就不做過(guò)多的贅述了。

蒲公英的fastlane配置的安裝状答,和fastlane的配置也可以參考以上文章冷守,我主要說(shuō)一下我在配置fastlane腳本時(shí)遇到的一些坑。

1.打開終端惊科,cd你工程的根目錄拍摇,并執(zhí)行以下命令:

fastlane init

中間會(huì)讓你輸入蘋果開發(fā)者賬號(hào)的賬號(hào)和密碼,之后會(huì)在你項(xiàng)目工程的目錄下生成一個(gè)fastlane文件夾馆截,里面有Fastlane的配置文件充活,一個(gè)是Appfile文件蜂莉,一個(gè)是Fastfile文件(如果要上傳AppStore的話還有Deliverfile文件)。Appfile保存蘋果開發(fā)者的相關(guān)信息混卵、項(xiàng)目的相關(guān)信息等映穗。Fastfile是運(yùn)行腳本。

在寫FastFile文件時(shí)幕随,我遇到一坑蚁滋,因?yàn)槲覀冺?xiàng)目比較老,在打包的時(shí)候的時(shí)候出現(xiàn)了5個(gè)選項(xiàng)赘淮,我的gym如下:

image

然后使用fastlane打包出現(xiàn)下面的情況:

image

一下子出現(xiàn)了5個(gè)scheme枢赔,然后要手動(dòng)輸入數(shù)字才能夠繼續(xù)進(jìn)行打包,然后我查資料拥知,參考了這個(gè)Fastlane的gym指令 - CSDN博客踏拜,在gym里加入scheme參數(shù)解決了這個(gè)問(wèn)題,參數(shù)的值要寫scheme全拼低剔,不要寫數(shù)字速梗。

最后的gym如圖所示:

image

jenkins安裝

jenkins安裝我主要參考了蒲公英的開發(fā)文檔,蒲公英 - 文檔中心 - 使用 Jenkins 實(shí)現(xiàn)持續(xù)集成 (iOS)襟齿。

在 Mac 環(huán)境下姻锁,我們需要先安裝 JDK,然后在Jenkins 的官網(wǎng)下載最新的 war 包猜欺。下載完成后位隶,打開終端,進(jìn)入到 war 包所在目錄开皿,執(zhí)行以下命令:

java -jar jenkins.war --httpPort=8080

記住一定要用war包涧黄,我一開始去官網(wǎng)下載了jenkins的pkg包,安裝后一直出錯(cuò)赋荆,最后換成war包之后才好笋妥。

jenkins的配置

最基本的配置我就不再贅述了,請(qǐng)參考蒲公英 - 文檔中心 - 使用 Jenkins 實(shí)現(xiàn)持續(xù)集成 (iOS)窄潭,在這我主要說(shuō)一下jenkins本身一些有意思的功能和腳本的配置春宣。

jenkins在build的時(shí)候可以添加一些參數(shù),我根據(jù)我們的需求在jenkins上添加了兩個(gè)參數(shù)嫉你,如圖所示:

image

第一個(gè)參數(shù)的作用是打包的時(shí)候能夠輸入一些日志月帝,便于進(jìn)行版本管理,第二個(gè)參數(shù)則是選擇打測(cè)試包還是生產(chǎn)包幽污,根據(jù)這個(gè)參數(shù)的值我們進(jìn)行文件的替換嚷辅。加入?yún)?shù)后build時(shí)的效果如圖:

image

jenkins腳本設(shè)置

這一步主要用來(lái)打包 ipa 并上傳到蒲公英。我們點(diǎn)擊“增加構(gòu)建步驟”油挥,選擇 "Execute Shell"潦蝇。輸入你的腳本款熬,我們能在這一步做很多事深寥。

#取到我們?cè)O(shè)置的參數(shù)攘乒,判斷是打生產(chǎn)還是測(cè)試包

if [ $BUILD_TYPE == "Release" ]; 

then
  #我在svn上放的是測(cè)試環(huán)境的url文件,打生產(chǎn)包的時(shí)候把我放在根目錄的生產(chǎn)環(huán)境的URL文件和里面的進(jìn)行替換
    cp -rp $WORKSPACE/UrlHeader.h $WORKSPACE/yingxiao/Third        


fi

IPANAME="jinkens-myapp"

#fastlane的參數(shù)配置
fastlane gym --export_method enterprise --output_name ${IPANAME} --clean true --configuration Release

#創(chuàng)建json日志文件惋鹅,用于存儲(chǔ)蒲公英給我們返回的信息

postfiledir=${WORKSPACE}/tmp
postfilename=$postfiledir/upload_app.txt
if [ ! -e "$postfiledir" ]; then
    mkdir $postfiledir
    echo "創(chuàng)建了日志文件夾"
fi
if [ ! -e "$postfilename" ]; then
    touch $postfilename
    echo "創(chuàng)建了日志文件"
fi

#上傳到蒲公英并接收蒲公英返回的信息则酝,并在jenkins的build History上展示返回的二維碼圖片

curl -F "file=@${IPANAME}.ipa" -F "uKey=" -F "_api_key=" http://www.pgyer.com/apiv1/app/upload >${postfilename}
url=$(cat ${postfilename}|awk -F'"' '{print $(NF-1)}'|sed 's#\\##g')
echo "appQRCodeURL:<img src=$url>" 

#經(jīng)測(cè)試,生產(chǎn)環(huán)境的url文件把測(cè)試的url文件替換后闰集,再打測(cè)試包發(fā)現(xiàn)jenkins沒(méi)把svn上的測(cè)試環(huán)境url文件拉下來(lái)沽讹,所以結(jié)束的時(shí)候刪除工作空間

rm -rf $WORKSPACE

執(zhí)行完畢成功的結(jié)果是:


8FD6BB4D-1F96-41D8-8887-320D178E75A0.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市武鲁,隨后出現(xiàn)的幾起案子爽雄,更是在濱河造成了極大的恐慌,老刑警劉巖沐鼠,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挚瘟,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡饲梭,警方通過(guò)查閱死者的電腦和手機(jī)乘盖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)憔涉,“玉大人订框,你說(shuō)我怎么就攤上這事《颠叮” “怎么了穿扳?”我有些...
    開封第一講書人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)国旷。 經(jīng)常有香客問(wèn)我纵揍,道長(zhǎng),這世上最難降的妖魔是什么议街? 我笑而不...
    開封第一講書人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任泽谨,我火速辦了婚禮,結(jié)果婚禮上特漩,老公的妹妹穿的比我還像新娘吧雹。我一直安慰自己,他們只是感情好涂身,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開白布雄卷。 她就那樣靜靜地躺著,像睡著了一般蛤售。 火紅的嫁衣襯著肌膚如雪丁鹉。 梳的紋絲不亂的頭發(fā)上妒潭,一...
    開封第一講書人閱讀 52,793評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音揣钦,去河邊找鬼雳灾。 笑死,一個(gè)胖子當(dāng)著我的面吹牛冯凹,可吹牛的內(nèi)容都是我干的谎亩。 我是一名探鬼主播,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼宇姚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼匈庭!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起浑劳,我...
    開封第一講書人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤阱持,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后魔熏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衷咽,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年道逗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了兵罢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡滓窍,死狀恐怖卖词,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吏夯,我是刑警寧澤此蜈,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站噪生,受9級(jí)特大地震影響裆赵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜跺嗽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一战授、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧桨嫁,春花似錦植兰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至畜挨,卻和暖如春筒繁,著一層夾襖步出監(jiān)牢的瞬間噩凹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工毡咏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留驮宴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓血当,卻偏偏與公主長(zhǎng)得像幻赚,于是被迫代替她去往敵國(guó)和親禀忆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子臊旭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361

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