昨天晚上公升級了
mac系統到
10.10.5
,xcode
也到了7.0
,手機也公升級到了
ios9.
不過今天早上發現,公升級以後,執行的時候,報錯:
umengfeedback_sdk_2.1/libumfeedback.a(umchattableviewcell.o)'doesnot contain bitcode. you must rebuild it with bitcode enabled (xcodesettingenable_bitcode), obtain an updated library from the vendor, or disablebitcodefor this target. for architecture arm64
,頓感鬱悶至極。
後來看了下文件,理解如下:
一、
bitcode
是什麼呢?
其實,說白了,
bitcode
就是蘋果編譯後的**的一種中間形式。如果程式中
bitcode
的開關是開啟的,那麼
該程式將會在
上被編譯和鏈結。當蘋果拿到使用者上傳的
bitcode
程式包以後,可以自己處理轉換成
32位以及
64位。
在xcode 7
中,有一段描述如下:
當提交程式到
上時,xcode
會將程式編譯為乙個中間表現形式
(bitcode)
。然後會再將這個
bitcode
編譯為可執行的
64位或
32位程式。
這段描述是放在**)
一節中,可以看出其與包的優化有關了。
二、解決辦法:
解決辦法
一、讓第三方庫支援
bitcode
,解決辦法
二、關閉
target
的bitcode
選項。實際上,在
xcode 7
中,我們新建乙個
ios程式時,
bitcode
選項預設是設定為
yes的。我們可以在
」buildsettings」->」enable bitcode」
選項中看到這個設定。不過,我們現在需要考慮的是三個平台:
ios,
mac os
,watchos。對於
ios,
bitcode
是可選的;對於
watchos
,bitcode
是必須的;而
mac os
是不支援
bitcode
。如果我們開啟了
bitcode
,在提交程式到
時,會看到有
bitcode
的選項:
iOS中真機執行報錯bitcode解決方法
我們在開發中難免會匯入第三方的庫,在真機測試的時候,會報錯clang error linker command failed with exit code 1 use v to see invocation 錯誤詳細資訊如下 you must rebuild it with bitcode enab...
Bitcode導致的編譯報錯
在xcode7.1進行archive時,會報這樣的錯誤 ld object contains invalid bitcode users umsocial sdk extra frameworks wechat libwechatsdk.a wechatauthsdk.o for architect...
iOS中Bitcode的介紹及配置
用xcode 7 beta 3在真機 ios 8.3 上執行一下工程,結果發現工程編譯不過。看了下問題,報的是以下錯誤 ld users framework sdks polymerpay library mobstat lib sdk.a forsdk.o does not contain bit...