Preface
前幾天老大給我安排了打包app的任務,這對于小編來說是很駕輕就熟的事情.
但是萬萬沒想到還是出現了異常.
小編用正常的途徑就是無法成功打包.真的是腦闊疼啊.
當時用其他的打包方法暫時先頂上了,但是正常的渠道無法打包,始終是心里的一個疙瘩.
經過仔細研究,找到了原因,所以記錄一下并與大家分享.
Content
01 問題是什么
a,iOS的正常打包流程為:
a.1,選擇編譯設備為AnyiOSDevice
a.2,然后Product/Archive,就可以進入打包界面了.
b 這個是正常的界面我們注意到有以下2點:
b.1,顯示的按鈕是DistributeApp
b.2,顯示的文件的類型是iOS app Archive
c,但是,這次小編進來后的界面如下:
c.1,顯示的按鈕是Distribute Content
c.2,顯示的文件的類型是Generic Xcode Archive
然后這樣導出來的東西,是不包含ipa包的.
02 問題的原因
經過多次探索,最終發現是因為在Target/BuildPhases/LinkBinaryWithLibraries中引入了一個framework導致的
03 解決方法:
換一種引入framework的方式:
1,將framework放入一個目錄中.
2,在target/Build Settings/Search Paths/Framework Search Paths中將該framework添加進去.
Xcode會將該framework連接起來,我們直接正常使用就可以了.
04 調查過程
01 查找相似問題
碼者(程序猿),遇到問題的第一步當然是百度了.還真有類似的問題.
Xcode 10.1 doesn't show 'distribute app' option when archiving, can't archive
這個是兩年前的問題,主要的解決方案說是將
target/Build Settings/Skip install選項設置為NO來解決.
但是小編的項目就是NO
所以這個方案不適合小編.
02 對比正常項目
1,這個打包異常,小編覺得肯定是某個設置項導致的,所以將Build Settings和正常的項目仔細對比了一遍,但是并沒有發現問題.
2,然后很自然,就想到了,是不是鏈接某個庫導致的.所以就發現了問題.
05 總結
需要學習自動化打包,擁有PlanB,多一種選擇,多一條生路.