Preface

前幾天老大給我安排了打包app的任務(wù),這對(duì)于小編來(lái)說(shuō)是很駕輕就熟的事情.
但是萬(wàn)萬(wàn)沒(méi)想到還是出現(xiàn)了異常.
小編用正常的途徑就是無(wú)法成功打包.真的是腦闊疼啊.
當(dāng)時(shí)用其他的打包方法暫時(shí)先頂上了,但是正常的渠道無(wú)法打包,始終是心里的一個(gè)疙瘩.
經(jīng)過(guò)仔細(xì)研究,找到了原因,所以記錄一下并與大家分享.
Content
01 問(wèn)題是什么
a,iOS的正常打包流程為:
a.1,選擇編譯設(shè)備為AnyiOSDevice

a.2,然后Product/Archive,就可以進(jìn)入打包界面了.

b 這個(gè)是正常的界面我們注意到有以下2點(diǎn):
b.1,顯示的按鈕是DistributeApp
b.2,顯示的文件的類(lèi)型是iOS app Archive
c,但是,這次小編進(jìn)來(lái)后的界面如下:

c.1,顯示的按鈕是Distribute Content
c.2,顯示的文件的類(lèi)型是Generic Xcode Archive
然后這樣導(dǎo)出來(lái)的東西,是不包含ipa包的.
02 問(wèn)題的原因
經(jīng)過(guò)多次探索,最終發(fā)現(xiàn)是因?yàn)樵赥arget/BuildPhases/LinkBinaryWithLibraries中引入了一個(gè)framework導(dǎo)致的

03 解決方法:
換一種引入framework的方式:
1,將framework放入一個(gè)目錄中.
2,在target/Build Settings/Search Paths/Framework Search Paths中將該framework添加進(jìn)去.
Xcode會(huì)將該framework連接起來(lái),我們直接正常使用就可以了.
04 調(diào)查過(guò)程
01 查找相似問(wèn)題
碼者(程序猿),遇到問(wèn)題的第一步當(dāng)然是百度了.還真有類(lèi)似的問(wèn)題.
Xcode 10.1 doesn't show 'distribute app' option when archiving, can't archive
這個(gè)是兩年前的問(wèn)題,主要的解決方案說(shuō)是將
target/Build Settings/Skip install選項(xiàng)設(shè)置為NO來(lái)解決.
但是小編的項(xiàng)目就是NO
所以這個(gè)方案不適合小編.
02 對(duì)比正常項(xiàng)目
1,這個(gè)打包異常,小編覺(jué)得肯定是某個(gè)設(shè)置項(xiàng)導(dǎo)致的,所以將Build Settings和正常的項(xiàng)目仔細(xì)對(duì)比了一遍,但是并沒(méi)有發(fā)現(xiàn)問(wèn)題.
2,然后很自然,就想到了,是不是鏈接某個(gè)庫(kù)導(dǎo)致的.所以就發(fā)現(xiàn)了問(wèn)題.
05 總結(jié)
需要學(xué)習(xí)自動(dòng)化打包,擁有PlanB,多一種選擇,多一條生路.