最近寫小直播項目洁桌,運行 騰訊云的實例demo時在模擬器debug模式下編譯成功鞭光,在模擬器release模式下編譯失敗,主要是跟第三方類庫相關(guān)的錯誤植康,但是 在發(fā)布模式,也就是小錘子release模式下編譯就會成功拙绊,查看了相關(guān)博客向图,發(fā)現(xiàn)問題的解決方案,問題截圖如下面所示:
debug模擬器模式編譯成功
release模擬器模式編譯失敗
release小錘子模式編譯成功
把鏈接器的錯誤信息翻來覆去的看,無非原因是相關(guān)的庫沒導(dǎo)入标沪,或者指令體系結(jié)構(gòu)不正確榄攀,但是按照要求改了多次依然無效,最后無意間搜索了一下ld:warning:ignoring file這行警告信息金句,根據(jù)提示檩赢,修改了編譯選項:Build Settings->Build Options->Enable BitCode->NO 設(shè)置以后,又根據(jù)網(wǎng)上搜索到的答案
可能原因二:正如這個錯誤提示所指出的那樣,缺少了i386架構(gòu)的東西贞瞒。這很可能是由于項目中包含的靜態(tài)庫是被編譯用于真機(jī)測試的偶房,大家都知道蘋果手機(jī)cpu是arm架構(gòu),而mac筆記本(當(dāng)然也包括運行于其上的iphone-simulator)是intel架構(gòu)军浆。所以當(dāng)這個靜態(tài)庫被編譯用于device的時候棕洋,在目標(biāo)為simulator下的編譯是會報錯的。
解決方法一:直接真機(jī)調(diào)試乒融。
解決方法二:重新為simulator編譯靜態(tài)庫掰盘,然后有一個更高端的解決辦法,就是將兩種架構(gòu)的靜態(tài)庫合并: