iOS自動(dòng)化打包-Fastlane入門(mén)

iOS開(kāi)發(fā)者都經(jīng)歷過(guò)在測(cè)試階段一遍一遍地Product->Archive->WaitWait>Export->Confirm,然后打開(kāi)網(wǎng)頁(yè)上傳到蒲公英或者fir發(fā)給測(cè)試乓旗,每次打個(gè)包至少花費(fèi)5分鐘功茴,上傳iTunesConnect的話(huà)時(shí)間就更久了说墨,如果你還是在這么做赋除,那么是時(shí)候考慮引入自動(dòng)化打包了袋马,節(jié)約下來(lái)的時(shí)間可以做很多事漏健。本文將以最簡(jiǎn)單的步驟配置Fastlane嚎货,達(dá)到自動(dòng)化打出AdHoc包并上傳到蒲公英或者fir的目的。更詳細(xì)的教程和原理講解會(huì)在文末列出蔫浆。

1.安裝fastlane

1.1確保安裝了最新版的Xcode command line tools

xcode-select --install

1.2選擇安裝方式

Homebrew Installer Script Rubygems(Ruby 2.0.0 或者以上)
brew cask install fastlane 下載壓縮包. 然后雙擊安裝腳本. sudo gem install fastlane -NV

1.3安裝bundler

sudo gem install bundler

2.配置fastlane

cd到項(xiàng)目的根目錄下

2.1初始化fastlane

fastlane init

會(huì)詢(xún)問(wèn)你AppleID和密碼殖属,填完之后fastlane會(huì)自動(dòng)檢測(cè)當(dāng)前項(xiàng)目的App Name和App Identifier并顯示在屏幕上,如果檢測(cè)不對(duì)瓦盛,在確認(rèn)信息的時(shí)候選擇n然后手動(dòng)輸入洗显。

2.2初始化Gemfile

新建Gemfile

vim Gemfile 

然后填入以下內(nèi)容

source "https://rubygems.org"

gem "fastlane"
gem "cocoapods"

運(yùn)行 bundle update 命令,然后將Gemfile和Gemfile.lock加入git管理

2.3安裝蒲公英和fir插件

fastlane add_plugin pgyer  #蒲公英
fastlane add_plugin firim    #fir.im

2.4配置Fastfile

在Fastfile中:
action => Fastlane中的每一條命令都是一個(gè)action
lane => Fastlane中流程的合集

使用vim打開(kāi)Fastfile

vim ./fastlane/Fastfile

以下是我的lane原环,分別對(duì)應(yīng)了上傳到蒲公英挠唆,fir的配置

#打出測(cè)試包,上傳到蒲公英
  lane :beta do            // beta是lane的名字嘱吗,可以修改
  gym(output_name: "beta", # 導(dǎo)出的ipa名字
           scheme: "debug",  # 用哪個(gè)scheme打包玄组,關(guān)于scheme的使用可參考我的上一篇文章
    export_method: "ad-hoc",# export_method 可以根據(jù)打包類(lèi)型進(jìn)行相應(yīng)設(shè)置≮寺螅可選的值有:app-store俄讹、ad-hoc、development绕德、enterprise
 output_directory:"~/Documents/ipa")# ipa導(dǎo)出目錄
  pgyer(api_key: "df59c69bfe382fa70f3e96acf104****", user_key: "33d775f94e25df07938ca164241****")// 蒲公英的key
  end

#打出正式包患膛,上傳到fir.im
  lane :release do |op|
increment_version_number(version_number: op[:version]) #根據(jù)入?yún)ersion獲取app版本號(hào)
  gym(output_name: "appstore",
           scheme: "Release",
    export_method: "ad-hoc",
 output_directory:"~/Documents/ipa") 
 firim(firim_api_token:"637bfd3dfeb2c123bd45de864575a****") # fir.im api_token
 
  end

#打出正式包,上傳到iTunes Connect
  lane :itunes do
  gym(output_name: "AppStore",
           scheme: "YMPicture_Release",
    export_method: "app-store",
 output_directory:"~/Documents/ipa")
  appstore       # 上傳你的App iTunes Connect
  end

3.執(zhí)行自動(dòng)化打包

1.測(cè)試包上傳到蒲公英

fastlane beta

2.正式包上傳到fir

fastlane release version:版本號(hào)
如
fastlane release version:1.0.0

3.上傳到itunes connect

fastlane itunes

4.升級(jí)Fastlane

bundle update fastlane

5.常見(jiàn)錯(cuò)誤

  1. It seems like you wanted to load some plugins, however they couldn't be loaded
    解決方法:
    https://github.com/fastlane/fastlane/blob/master/fastlane/docs/PluginsTroubleshooting.md
    2.升級(jí)Xcode 9 之后打包導(dǎo)出失敗
    解決辦法:
    gym里面要加入export_options 耻蛇,詳見(jiàn)
    https://docs.fastlane.tools/codesigning/xcode-project/#xcode-9-and-up

2019.1.16更新

最近升級(jí)到macOS Mojave踪蹬,fastlane 打包報(bào)錯(cuò)。解決方法是升級(jí)ruby到2.5.1臣咖,重新安裝fastlane跃捣。

參考資料

官方文檔
小團(tuán)隊(duì)的自動(dòng)化發(fā)布-Fastlane帶來(lái)的全自動(dòng)化部署
Fastlane實(shí)戰(zhàn)(一):移動(dòng)開(kāi)發(fā)自動(dòng)化之道
Fastlane實(shí)戰(zhàn)(二):Action和Plugin機(jī)制
Fastlane實(shí)戰(zhàn)(四):自動(dòng)化測(cè)試篇
Fastlane實(shí)戰(zhàn)(五):高級(jí)用法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市亡哄,隨后出現(xiàn)的幾起案子枝缔,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愿卸,死亡現(xiàn)場(chǎng)離奇詭異灵临,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)趴荸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)儒溉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人发钝,你說(shuō)我怎么就攤上這事顿涣。” “怎么了酝豪?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵涛碑,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我孵淘,道長(zhǎng)蒲障,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任瘫证,我火速辦了婚禮揉阎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘背捌。我一直安慰自己毙籽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布毡庆。 她就那樣靜靜地躺著坑赡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪么抗。 梳的紋絲不亂的頭發(fā)上垮衷,一...
    開(kāi)封第一講書(shū)人閱讀 52,337評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音乖坠,去河邊找鬼。 笑死刀闷,一個(gè)胖子當(dāng)著我的面吹牛熊泵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播甸昏,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼顽分,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了施蜜?” 一聲冷哼從身側(cè)響起卒蘸,我...
    開(kāi)封第一講書(shū)人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后缸沃,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體恰起,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年趾牧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了检盼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡翘单,死狀恐怖吨枉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情哄芜,我是刑警寧澤貌亭,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站认臊,受9級(jí)特大地震影響圃庭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜美尸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一冤议、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧师坎,春花似錦恕酸、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至遏乔,卻和暖如春义矛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盟萨。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工凉翻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捻激。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓制轰,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親胞谭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子垃杖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

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