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ò)誤
- 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í)用法