今天剛好碰到這個(gè)問題蟀给,一直以為是第三方框架導(dǎo)入重復(fù)所致蝙砌,找了半天也未解決,后來上網(wǎng)找到相關(guān)資料跋理,這里也順便記錄一下择克。
由于我用的是7.1 在運(yùn)行和真機(jī)時(shí)候都沒有問題,但是進(jìn)行Archive時(shí)前普,會(huì)報(bào)這樣的錯(cuò)誤:
clang: error: linker command failed with exit code 1 (use -v to see invocation)
最終找到原因:
在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。
對于iOS惠桃,bitcode是可選的浦夷;對于watchOS,bitcode是必須的辜王;而Mac OS是不支持bitcode劈狐。
所以,如果我們的工程需要支持bitcode呐馆,則必要要求所有引入的第三方庫都支持bitcode肥缔。
根據(jù)蘋果官方文檔解釋:
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位程序闺阱。
解決方案
Build Settings中炮车,把Enable Bitcode設(shè)置為NO