今天試著用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 it
with
bitcode enabled (xcode setting enable_bitcode), obtain an updated library from the vendor, or disable bitcode
for
this
target.
for
architecture 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...