iOS9 新特徵之一 Bitcode

2021-07-10 11:31:34 字數 1543 閱讀 9346

今天試著用xcode 7 beta 3在真機(ios 8.3)上執行一下我們的工程,結果發現工程編譯不過。看了下問題,報的是以下錯誤:

1

ld: 『/users/**/framework/sdks/polymerpay/library/mobstat/lib**sdk.a(**forsdk.o)』 does not contain bitcode. you must rebuild itwithbitcode enabled (xcode setting enable_bitcode), obtain an updated library from the vendor, or disable bitcodeforthistarget.forarchitecture arm64

得到的資訊是我們引入的乙個第三方庫不包含bitcode。嗯,不知道bitcode是啥,所以就得先看看這貨是啥了。

bitcode是什麼?

嗯,看著挺高階的啊。

bitcode配置

在上面的錯誤提示中,提到了如何處理我們遇到的問題:

you must rebuild it with bitcode enabled (xcode setting enable_bitcode), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64

要麼讓第三方庫支援,要麼關閉target的bitcode選項。

實際上在xcode 7中,我們新建乙個ios程式時,bitcode選項預設是設定為yes的。我們可以在」build settings」->」enable bitcode」選項中看到這個設定。

不過,我們現在需要考慮的是三個平台:ios,mac os,watchos。

如果我們開啟了bitcode,在提交包時,下面這個介面也會有個bitcode選項:

盜圖,我的應用沒辦法在這個介面顯示bitcode,因為依賴於第三方的庫,而這個庫不支援bitcode,暫時只能設定enable_bitcode為no。

所以,如果我們的工程需要支援bitcode,則必要要求所有的引入的第三方庫都支援bitcode。我就只能等著公司那些大哥大姐們啥時候提供乙個新包給我們了。

題外話

如上面所說,bitcode是一種中間**。llvm官方文件有介紹這種檔案的格式,有興趣的可以移步llvm bitcode file format。

參考

開發者所需要知道的 ios 9 sdk 新特性

llvm bitcode file format

IOS9新特性慢慢整理

1.首字母不帶下滑線的修飾類名 eg.nullable 2.首字母帶乙個下劃線,則首字母大寫,修飾物件 eg.nullable 3.首字母帶兩個下劃線,則首字母小寫,修飾物件 eg.nullable 4.大多數一般只有第一種 作用 表示可以為空 nullable書寫規範 方式一 property n...

iOS9新特性 ATS使用

一 xcode7 新建的專案,foundation下預設所有http請求都被改為https請求.也就是說,服務需要提供https tls 1.2 的介面 如果服務不改變,則客戶端info.plist的根需加下面的鍵值 nsallowsarbitraryloads 或者嚴謹的 二 xcode7 預設開...

iOS9新特性關鍵詞

1 作用 表示不能為空 2 用法 1 屬性 nonnull 宣告的屬性不能為空 getter方法和setter方法都有 property nonnull,nonatomic,copy nsstring name 寫法一 property nonatomic,copy nsstring nonnull...