最近寫小直播項目,運行 騰訊云的實例demo時在模擬器debug模式下編譯成功,在模擬器release模式下編譯失敗,主要是跟第三方類庫相關的錯誤,但是 在發布模式,也就是小錘子release模式下編譯就會成功,查看了相關博客,發現問題的解決方案,問題截圖如下面所示:
debug模擬器模式編譯成功
release模擬器模式編譯失敗
release小錘子模式編譯成功
把鏈接器的錯誤信息翻來覆去的看,無非原因是相關的庫沒導入,或者指令體系結構不正確,但是按照要求改了多次依然無效,最后無意間搜索了一下ld:warning:ignoring file這行警告信息,根據提示,修改了編譯選項:Build Settings->Build Options->Enable BitCode->NO 設置以后,又根據網上搜索到的答案
可能原因二:正如這個錯誤提示所指出的那樣,缺少了i386架構的東西。這很可能是由于項目中包含的靜態庫是被編譯用于真機測試的,大家都知道蘋果手機cpu是arm架構,而mac筆記本(當然也包括運行于其上的iphone-simulator)是intel架構。所以當這個靜態庫被編譯用于device的時候,在目標為simulator下的編譯是會報錯的。
解決方法一:直接真機調試。
解決方法二:重新為simulator編譯靜態庫,然后有一個更高端的解決辦法,就是將兩種架構的靜態庫合并: