一、前言
在上一篇文章iOS Fastlane 自動(dòng)化打包初探中我們介紹了fastlane的一些簡(jiǎn)單用法讥蟆,其實(shí)fastlane還可以實(shí)現(xiàn)很多功能拒垃。
二窍侧、實(shí)現(xiàn)更多的功能
下面這些工具的用法具體可在對(duì)應(yīng)的文檔中查看县踢,文檔講解的很詳細(xì),在配合多次練習(xí)伟件,肯定會(huì)用的得心應(yīng)手
實(shí)際上fastlane是一套工具集硼啤,包含如下工具:
- 測(cè)試工具
scan:自動(dòng)運(yùn)行測(cè)試工具,可以生成漂亮的HTML報(bào)告
- 生成證書(shū)斧账、配置文件工具
cert:自動(dòng)創(chuàng)建iOS代碼簽名證書(shū)(.cert文件)
sigh:自動(dòng)創(chuàng)建谴返、更新、下載咧织、修復(fù)Provisioning Profile
pem:自動(dòng)生成嗓袱、更新推送配置文件
- 截圖、描設(shè)備邊框
deliver:上傳截圖习绢、元數(shù)據(jù)渠抹、App到iTunesConnect
snapshot:使用UI test功能實(shí)現(xiàn)自動(dòng)截圖
frameit:在截圖的圖片外層套上物理設(shè)備邊框
- 自動(dòng)化編譯工具
gym:自動(dòng)化編譯工具
三、一鍵上傳AppStore
激動(dòng)人心的時(shí)刻來(lái)臨了闪萄,終于不用一頓操作梧却,各種選擇等待,最后提交審核了败去,現(xiàn)在我們可以一條指令完成以前的所有工作放航,開(kāi)始吧。
- 1为迈、工具生成
我們執(zhí)行fastlane init
后生成了Appfile
和Fastfile
兩個(gè)文件三椿,現(xiàn)在我們需要的工具是deliver
// 在項(xiàng)目根目錄執(zhí)行
$ fastlane deliver init
如果你輸入過(guò)Apple ID 那么會(huì)直接登錄iTunes Connect 并下載所需數(shù)據(jù)缺菌,如果沒(méi)有輸入過(guò)會(huì)讓你輸入Apple ID,照做就是了葫辐。
然后你會(huì)發(fā)現(xiàn)文件發(fā)生了如下變化。
2伴郁、信息配置
打開(kāi)metadata你會(huì)發(fā)現(xiàn)iTunes Connect 里APP所有的配置信息都在這里耿战,想更改什么找到對(duì)應(yīng)的更改就是了。3焊傅、lane 內(nèi)容調(diào)整
# 增加一個(gè)超時(shí)時(shí)長(zhǎng)剂陡,要不然會(huì)報(bào)超時(shí)
ENV["FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT"] = "120"
desc "上傳新版本到 App Store"
lane :release do
# 增加build版本號(hào)
# increment_build_number
scheme_name = "xxx"
# 導(dǎo)出路徑,桌面文件夾狐胎,沒(méi)有會(huì)創(chuàng)建
output_directory = File.expand_path("~/Desktop/IPA_Info")
#導(dǎo)出名稱(chēng)
output_name = "#{scheme_name}_#{Time.now.strftime('%Y%m%d%H%M%S')}.ipa"
gym(
export_method: "app-store", #這里填寫(xiě)導(dǎo)出方式
export_xcargs: "-allowProvisioningUpdates",
scheme: scheme_name,# target的名字
clean: true, # 在構(gòu)建前先clean
output_directory: output_directory,
output_name: output_name,
)
# 上傳AppStore
deliver
end
- 4鸭栖、一行代碼上傳
// 在項(xiàng)目根目錄執(zhí)行
$ fastlane release
-
5、生成配置信息預(yù)覽文件
這里選擇y,說(shuō)明你對(duì)配置信息確認(rèn)沒(méi)啥問(wèn)題握巢,選擇n晕鹊,就終止上傳啦。
你會(huì)在預(yù)覽文件中看到所有的配置信息,則些將是展示在iTunes上的信息
- 6溅话、結(jié)果
等待一段時(shí)間后晓锻,在iTunes 上你會(huì)驚喜的發(fā)現(xiàn)出現(xiàn)了xx版本準(zhǔn)備提交的選項(xiàng),里面的配置信息也根據(jù)你配置的更改了飞几,目前狀態(tài)是準(zhǔn)備提交砚哆,如果想直接進(jìn)入等待審核呢,deliver增加如下參數(shù)
deliver(
submit_for_review: true # 提交審核
)
- 7、注意事項(xiàng)
- 在上傳appStore時(shí)候屑墨,app的版本記得更改成想要的版本
- 如果打包一次了躁锁,再此打包的時(shí)候如果沒(méi)有增加build號(hào),會(huì)報(bào)錯(cuò)卵史,為了避免每次打包都要增加build灿里,我們?cè)黾幼詣?dòng)增加build功能,首選按下圖配置程腹,然后增加
increment_build_number
匣吊,把 3、lane 內(nèi)容調(diào)整的對(duì)應(yīng)代碼打開(kāi)寸潦。 - 下圖第3步 這個(gè)值應(yīng)該大于你項(xiàng)目的當(dāng)前build值色鸳,例如我的是305,那么這里應(yīng)該大于305见转,這樣自增才會(huì)有效命雀,因?yàn)橹辉鍪歉鶕?jù)你這個(gè)值增加的。
- 如果iTunes 信息手動(dòng)更改了斩箫,想更新到本地的話
// 根目錄下執(zhí)行
$ fastlane deliver download_metadata
四吏砂、多target項(xiàng)目實(shí)現(xiàn)自動(dòng)打包
有時(shí)候我們的項(xiàng)目可能一套代碼有多個(gè)target,這個(gè)時(shí)候怎么實(shí)現(xiàn)自動(dòng)打包我們需要的target呢乘客?其實(shí)很簡(jiǎn)單狐血,如下圖我們?cè)谙胍膖arget中選擇Edit Scheme->shared 勾選,這樣在Fastfile
中g(shù)ym配置如下即可,不勾選shared會(huì)報(bào)錯(cuò)
gym (
scheme: "target的scheme name", # 此處應(yīng)該是TargetDemo2
)