iOS中Bitcode的報錯

2021-09-30 12:37:35 字數 1483 閱讀 4019

昨天晚上公升級了

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...