使用Jenkins+Fastlane+Fir/Pgyer實(shí)現(xiàn)自動(dòng)化打包

一赌髓、傳統(tǒng)打包的痛點(diǎn)

  1. 如果你有一臺(tái)配置較高的MBP从藤,沖杯咖啡回來催跪,包已經(jīng)打好了;如果你用的是配置較低的mac mini夷野,去咖啡店喝杯咖啡回來懊蒸,你的包還不定能打好;打包過程中悯搔,你唯一的做的就是等待骑丸,等待,待...

  2. 切換分支不方便

  3. 本來需要的是Release環(huán)境妒貌,你卻選了Debug環(huán)境

  4. 打包完成后通危,需要手動(dòng)上傳到fir或者pgyer

  5. 09:00,測(cè)試人員:親灌曙,給我打個(gè)包菊碟;

    11:00,測(cè)試人員:你這里有個(gè)bug在刺,修復(fù)下逆害,然后給我打個(gè)包;

    15:00蚣驼,測(cè)試人員:你這個(gè)按鈕往右多偏移了5個(gè)像素魄幕,改完打個(gè)包;

    17:00颖杏,測(cè)試人員:我要個(gè)正式環(huán)境的包

二纯陨、Fastlane

Fastlane是一套可以簡(jiǎn)化iOS和Android開發(fā)人員繁瑣任務(wù)的自動(dòng)化工具,如生成屏幕截圖输玷、處理配置文件以及發(fā)布應(yīng)用程序队丝。Fastlane的詳細(xì)使用,可以參考其使用文檔欲鹏。

1.安裝Xcode命令行開發(fā)者工具

  xcode-select --install

如果沒有安裝机久,會(huì)彈出安裝提示

  
image

2.安裝Fastlane

sudo gem install fastlane -NV

報(bào)錯(cuò)

  
image

  改為
sudo gem install -n /usr/local/bin fastlane -NV

3.初始化Fastlane

cd 項(xiàng)目目錄
fastlane init
image

初始化時(shí)會(huì)出現(xiàn)4個(gè)選項(xiàng):
  1.Automate screenshots:截圖
  2.Automate beta distribution to TestFlight:上傳到TestFlight
  3.Automate App Store distribution:上傳到App Store
  4.Manual setup - manually setup your project to automate your tasks:自定義
  
  選擇3,輸入開發(fā)者賬號(hào)和密碼赔嚎,報(bào)錯(cuò)

  
image

  因?yàn)槲矣玫氖瞧髽I(yè)證書膘盖,無法上傳到App Store,回滾后尤误,重新選擇4
  
image

  按照提示Enter
  
  4.完成后侠畔,項(xiàng)目目錄里會(huì)生成一個(gè)fastlane文件夾
  
image

  
  Appfile用來存放App的bundleID和teamID,F(xiàn)astfile用來存儲(chǔ)打包的腳本损晤。
  如果上傳到蒲公英软棺,需要安裝蒲公英的插件:

fastlane add_plugin pgyer

如果上傳到Fir,需要安裝Fir的插件:

fastlane add_plugin firim

Fastfile里我的參考腳本:

default_platform(:ios)

platform :ios do
  desc "打Release包"
  lane :Release do
    gym(
        clean:true, #打包前clean項(xiàng)目
        export_method:"enterprise", #導(dǎo)出方式
        configuration:"Release", #環(huán)境
        output_directory:"./app", #ipa的存放目錄
        output_name:get_build_number(), #輸出ipa的文件名為當(dāng)前的build號(hào)
       export_xcargs: "-allowProvisioningUpdates" #Xcode 9及以上沒有權(quán)限獲取鑰匙串里面的證書尤勋,必須加上這個(gè)才能打包成功
        )
        
        #打包到蒲公英
        pgyer(api_key: "c682339xxxxxxxxxxxx", user_key: "f61a83xxxxxxxxxxx")
        
        #打包到Fir
        firim(firim_api_token:"d7387f15xxxxxxxxxx")
  end
end

我們通過不同的lane喘落,來執(zhí)行不同的打包操作茵宪,因此可以根據(jù)需求來添加lane。這里我們執(zhí)行打Release包操作:

fastlane Release
image

報(bào)錯(cuò)瘦棋,訪問報(bào)錯(cuò)信息里提供的蘋果開發(fā)者網(wǎng)址稀火,發(fā)現(xiàn)需要在項(xiàng)目中配置選項(xiàng),如下:


image

重新執(zhí)行打包操作赌朋,等待完成凰狞,然后就能發(fā)現(xiàn)我們的包已經(jīng)自動(dòng)上傳到蒲公英和Fir上了。
  使用fastlane打包沛慢,可以解決傳統(tǒng)打包痛點(diǎn)的1-4項(xiàng)赡若,碰到第5項(xiàng),你還是要自己執(zhí)行打包腳本颠焦。這時(shí)我們引入Jenkins斩熊,讓測(cè)試人員通過訪問開發(fā)人員本地服務(wù)器地址來執(zhí)行打包腳本。

三伐庭、Jenkins

1.下載安裝JDK粉渠,配置JDK環(huán)境變量

2.下載安裝Jenkins

安裝完成后,Safari會(huì)自動(dòng)彈出圾另,


image

執(zhí)行命令霸株,查看其提供路徑下的密碼:

sudo cat /Users/Shared/Jenkins/Home/secrets/initialAdminPassword
image

image

image

image

image

image

3.新建任務(wù)


image

General,無需配置
源碼管理:無需配置
構(gòu)建觸發(fā)器:無需配置
構(gòu)建環(huán)境:無需配置

構(gòu)建配置集乔,添加“執(zhí)行shell”:


image

image

構(gòu)建后操作:無需配置

4.開始構(gòu)建


image

這里看控制臺(tái)輸出


image

打包成功


image

5.至此去件,我們可以將自己的ip地址:8080,發(fā)給測(cè)試人員扰路,這樣測(cè)試人員可以自行打包尤溜,然后去蒲公英或者Fir上下載app。打包的時(shí)候汗唱,我們必須保證本地的jenkins服務(wù)是開啟的宫莱,否則其他人員是無法訪問你的鏈接的,如果沒有開啟哩罪,我們可以通過以下命令開啟服務(wù):

  sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
  java -jar /Applications/Jenkins/jenkins.war --httpPort=8080
  

四授霸、總結(jié)

單獨(dú)使用Fastlane,或者單獨(dú)使用Jenkins际插,其實(shí)都可以完成打包操作碘耳。單獨(dú)使用Fastlane,開發(fā)人員需要自行打包框弛,測(cè)試人員無法打包辛辨;單獨(dú)使用Jenkins,打包配置過于繁瑣,證書失效等情況會(huì)導(dǎo)致配置文件失效愉阎,導(dǎo)致打包時(shí)報(bào)绞蹦。Fastlane和Jenkins相結(jié)合的打包方式力奋,通過Jenkins執(zhí)行Fastlane的打包腳本榜旦,無需復(fù)雜的配置,不同的項(xiàng)目只需要簡(jiǎn)單的修改腳本景殷,支持測(cè)試人員自行打包溅呢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市猿挚,隨后出現(xiàn)的幾起案子咐旧,更是在濱河造成了極大的恐慌,老刑警劉巖绩蜻,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铣墨,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡办绝,警方通過查閱死者的電腦和手機(jī)伊约,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來孕蝉,“玉大人屡律,你說我怎么就攤上這事〗祷矗” “怎么了超埋?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)佳鳖。 經(jīng)常有香客問我霍殴,道長(zhǎng),這世上最難降的妖魔是什么系吩? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任来庭,我火速辦了婚禮,結(jié)果婚禮上淑玫,老公的妹妹穿的比我還像新娘巾腕。我一直安慰自己,他們只是感情好絮蒿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布尊搬。 她就那樣靜靜地躺著,像睡著了一般土涝。 火紅的嫁衣襯著肌膚如雪佛寿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音冀泻,去河邊找鬼常侣。 笑死,一個(gè)胖子當(dāng)著我的面吹牛弹渔,可吹牛的內(nèi)容都是我干的胳施。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼肢专,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼舞肆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起博杖,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤椿胯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后剃根,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哩盲,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年狈醉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了廉油。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡舔糖,死狀恐怖娱两,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情金吗,我是刑警寧澤十兢,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站摇庙,受9級(jí)特大地震影響旱物,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜卫袒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一宵呛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧夕凝,春花似錦宝穗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至转砖,卻和暖如春须鼎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工晋控, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留汞窗,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓赡译,卻偏偏與公主長(zhǎng)得像仲吏,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子捶朵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

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