關(guān)于自動打包的研究,最近翻閱了各方大佬的博文,根據(jù)各方大佬的經(jīng)驗(yàn),分享下我自己的體會和記錄,關(guān)于自動打包我分為三篇文章。
第一篇介紹我嘗試的幾種方案,優(yōu)缺點(diǎn)分析,以及比較省事的一種打包(附帶參考鏈接和問題解答)。
第二篇介紹xcodebuild,分為兩種打包方式:命令行打包 和 腳本打包,
第三篇介紹比較火的fastlane基礎(chǔ)知識和簡單使用,打包方式也分為:命令行打包 和 腳本打包。
iOS-自動打包及分發(fā)(一)
iOS-自動打包及分發(fā)(二)
iOS-自動打包及分發(fā)(三)
下面進(jìn)入正文:
一、為什么要自動打包?
1.1 簡化iOS項(xiàng)目打包過程操作。
1.2 簡化.ipa包上傳分發(fā)平臺過程步驟。
1.3 節(jié)省iOS項(xiàng)目打包所需時(shí)間。
1.4 節(jié)省ipa包上傳分發(fā)測試平臺所需時(shí)間。
1.5 提高iOS開發(fā)人員的效率。
二、幾種打包方案分析
2.1 xcode默認(rèn)打包
自動略過,參考上面
2.2 xcodebuild命令行打包
官方,命令簡潔明了,功能單一。
2.3 fastlane命令行打包
第三方工具集,擴(kuò)展功能豐富。
2.4 xcodebuild腳本命令打包
在腳本中編輯好xcodebuild命令,終端一行代碼即可完成自動打包及分發(fā)。
2.5 fastlane腳本打包
在腳本中編輯好fastlane命令,終端一行代碼即可完成自動打包及分發(fā)。
命令行打包優(yōu)勢:模塊層次清晰,打包步驟一目了然。
腳本打包有一個(gè)顯著的優(yōu)勢,通俗易懂、注釋全面,一行代碼即可完成打包過程(切換打包類型只需要修改配置好的個(gè)別參數(shù))。
經(jīng)過上面,已經(jīng)很明顯了,fastlane腳本打包是功能最為強(qiáng)大的。xcodebuild腳本測試時(shí)最實(shí)用。
相對比傳統(tǒng)打包,當(dāng)archive編譯開始后,就需要一步步點(diǎn)擊執(zhí)行下一步、一些無腦的操作還必須要去做。如果同時(shí)需要幾個(gè)測試包的時(shí)候,就浪費(fèi)了成倍的時(shí)間。但是如果配置好簽名文件和自動打包腳本后,那么一行代碼就行了,接下來的時(shí)間去抽根煙、喝杯咖啡等等都隨意你的安排。
附帶一位大能寫好的Demo。有興趣的可以看看后面的兩個(gè)文章。
高屋建瓴,我三篇文章中或多或少的借鑒了下面大能的文章,根據(jù)他們的文章琢磨出自己適用和喜歡的,下面提供一些文章地址和問題解答,喜歡研究和測試的可以參考:
iOS-fastlane腳本
fastlane使用說明書
fastlane與持續(xù)集成
[iOS-Release] 自動打包分發(fā)
iOS自動化打包發(fā)布(fastlane)
iOS中使用Fastlane實(shí)現(xiàn)自動化打包和發(fā)布
Fastlane的黑魔法:一鍵打包編譯上傳 AppStore
iOS App自動化打包發(fā)布(Jenkins + Fastlane)
當(dāng)Fastlane遇到Xcode9打包出來不一定是ipa而是坑
Fastlane- app自動編譯、打包多個(gè)版本、上傳到app store
xcodebuild 自動打包及分發(fā)
xcodebuild自動打包腳本與自動上傳蒲公英腳本
使用腳本工具Xcodebuild打包項(xiàng)目和導(dǎo)出ipa 2016.12.18
iOS自動打包并發(fā)布到Fir.im
編寫shell命令實(shí)現(xiàn)IOS的自動打包
補(bǔ)充優(yōu)質(zhì)博文:
關(guān)于iOS自動化打包的一些分享
關(guān)于調(diào)試遇到的問題:
1、packageApplication錯(cuò)誤
xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH
解決:Xcode8.3以后少了PackageApplication。需要先下載PackageApplication放在下面路徑下:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/
然后執(zhí)行命令
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer/
chmod +x /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication
2、ad_hoc_options.plist 文件設(shè)置
在Xcode9.0以后要設(shè)置provisioningProfiles,增加Build ID (key)對應(yīng) 證書設(shè)置里面 Provisioning Profiles 的打包名字.
打包有四種:app-store, ad-hoc, enterprise, development。
3、Xcode升級后打包提示插件失效問題
解決:https://www.cnblogs.com/HMJ-29/p/5881536.html
4、查看Xcode UUID的方法
(defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID)
(慚愧啊,近期一直有事情,自己的筆記本又壞了,所以更新會有點(diǎn)遲,但是更新的時(shí)候盡可能保證質(zhì)量,諸多抱歉?。。。?/p>