Xcode7真機測試的問題

問題: ? ?Xcode升級到7以后正常調試是沒有問題的,但是在Archive的時候會出現一個包含標題的提示行錯誤

“(null): URGENT: all bitcode will be dropped because ‘xxxx’ was built without 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. Note: This will be an error in the future.”


從上面的錯誤可以看出,這是因為一個第三方的庫不兼容,工程中開啟了ENABLE_BITCODE(升級之后自動轉換的),這個第三方庫在編譯的時候是沒有ENABLE_BITCODE。


解決方法

1:直接換成enable bitcode的第三方庫;

2:將工程中的ENABLE_BITCODE設置成false就可以了,如下圖所示


下面是一些關于bitcode的介紹

1.對于bitcode的官方解釋是

Bitcode is an intermediate representation of a compiled program. Apps you upload to iTunes Connect that contain bitcode will be compiled and linked on the App Store. Including bitcode will allow Apple to re-optimize your app binary in the future without the need to submit a new version of your app to the store.

說的是bitcode是被編譯程序的一種中間形式的代碼。包含bitcode配置的程序將會在App store上被編譯和鏈接。bitcode允許蘋果在后期重新優化程序的二進制文件,而不需要重新提交一個新的版本到App store上。

當提交程序到App store上時,Xcode會將程序編譯為一個中間表現形式(bitcode)。然后App store會再將這個botcode編譯為可執行的64位或32位程序。再看看這兩段描述,都是放在App Thinning(App瘦身)一節中,可以看出其與包的優化有關了。

2.實際上,在Xcode 7中,我們新建一個iOS程序時,bitcode選項默認是設置為YES的。我們可以在”Build Settings”->”Enable Bitcode”選項中看到這個設置。不過,我們現在需要考慮的是三個平臺:iOS,Mac OS,watchOS。

對于iOS,bitcode是可選的;對于watchOS,bitcode是必須的;而Mac OS是不支持bitcode。

所以,如果我們的工程需要支持bitcode,則必要要求所有引入的第三方庫都支持bitcode。

通過本文對bitcode的概念及配置情況的簡要介紹,希望iOS開發人員在工程運行中遇到類似的情況,可以根據上文的介紹更有效的找到原因并及時處理。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容