問題:? ? Xcode升級(jí)到7以后正常調(diào)試是沒有問題的澎埠,但是在Archive的時(shí)候會(huì)出現(xiàn)一個(gè)包含標(biāo)題的提示行錯(cuò)誤
“(null): URGENT: all bitcode will be dropped because ‘xxxx’ was built without bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. Note: This will be an error in the future.”
從上面的錯(cuò)誤可以看出蒲稳,這是因?yàn)橐粋€(gè)第三方的庫不兼容伍派,工程中開啟了ENABLE_BITCODE(升級(jí)之后自動(dòng)轉(zhuǎn)換的),這個(gè)第三方庫在編譯的時(shí)候是沒有ENABLE_BITCODE诉植。
解決方法
1:直接換成enable bitcode的第三方庫;
2:將工程中的ENABLE_BITCODE設(shè)置成false就可以了舌稀,如下圖所示
下面是一些關(guān)于bitcode的介紹
1.對(duì)于bitcode的官方解釋是
Bitcode is an intermediate representation of a compiled program. Apps you upload to iTunes Connect that contain bitcode will be compiled and linked on the App Store. Including bitcode will allow Apple to re-optimize your app binary in the future without the need to submit a new version of your app to the store.
說的是bitcode是被編譯程序的一種中間形式的代碼。包含bitcode配置的程序?qū)?huì)在App store上被編譯和鏈接椒惨。bitcode允許蘋果在后期重新優(yōu)化程序的二進(jìn)制文件潮罪,而不需要重新提交一個(gè)新的版本到App store上领斥。
當(dāng)提交程序到App store上時(shí),Xcode會(huì)將程序編譯為一個(gè)中間表現(xiàn)形式(bitcode)月洛。然后App store會(huì)再將這個(gè)botcode編譯為可執(zhí)行的64位或32位程序。再看看這兩段描述细层,都是放在App Thinning(App瘦身)一節(jié)中唬涧,可以看出其與包的優(yōu)化有關(guān)了。
2.實(shí)際上碎节,在Xcode 7中,我們新建一個(gè)iOS程序時(shí)胎撇,bitcode選項(xiàng)默認(rèn)是設(shè)置為YES的殖氏。我們可以在”Build Settings”->”Enable Bitcode”選項(xiàng)中看到這個(gè)設(shè)置。不過爵憎,我們現(xiàn)在需要考慮的是三個(gè)平臺(tái):iOS,Mac OS总滩,watchOS。
對(duì)于iOS闰渔,bitcode是可選的冈涧;對(duì)于watchOS正蛙,bitcode是必須的;而Mac OS是不支持bitcode营曼。
所以,如果我們的工程需要支持bitcode锻全,則必要要求所有引入的第三方庫都支持bitcode录煤。
通過本文對(duì)bitcode的概念及配置情況的簡(jiǎn)要介紹鳄厌,希望iOS開發(fā)人員在工程運(yùn)行中遇到類似的情況妈踊,可以根據(jù)上文的介紹更有效的找到原因并及時(shí)處理廊营。