Xcode更新至IOS 9 后錯誤處理


1.obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64

d: -undefined and -bitcode_bundle (Xcode setting ENABLE_BITCODE =YES) cannot be used together clang: error: linker command failed with exit code 1 (use -v to see invocation)

 

這是一個坑爹的問題。

  • Xcode 7默認開啟 Bitcode ,如果應用開啟 Bitcode,那么其集成的其他第三方庫也需要是 Bitcode 編譯的包才能真正進行 Bitcode 編譯

  • 開啟 Bitcode 編譯后,編譯產生的 .app 體積會變大(中間代碼,不是用戶下載的包),且 .dSYM 文件不能用來崩潰日志的符號化(用戶下載的包是 Apple 服務重新編譯產生的,有產生新的符號文件)

  • 通過 Archive 方式上傳 AppStore 的包,可以在Xcode的Organizer工具中下載對應安裝包的新的符號文件

  • 我們可以在”Build Settings”->”Enable Bitcode”選項中看到:

    用 Xcode 7+ 新建一個 iOS 程序時, bitcode 選項默認是設置為YES的。現在需要改成NO。

 

 Watch 應用必須包含 Bitcode ,iOS不強制,Mac OS不支持。 但最坑的一點是: Xcode7 及以上版本會默認開啟 Bitcode 。

 

2. WebView 無法打開網頁

iOS9讓所有的HTTP默認使用了HTTPS,原來的HTTP協議傳輸都改成TLS1.2協議進行傳輸。直接造成的情況就是App發請求的時候彈出網絡無法連接。解決辦法就是在項目的info.plist 文件里加上如下節點:

NSAppTransportSecurity - NSAllowsArbitraryLoads

這個子節點的意思是:是否允許任性的加載?! 設為YES的話就將禁用了AppTransportSecurity轉而使用用戶自定義的設置,這個問題就解決了。

針對百度的情況可以在info.plist中配置如下,如果網站引用的比較多應該是需要針對每個網站進行配置。

NSAppTransportSecurity,NSExceptionDomains,NSIncludesSubdomains,NSExceptionRequiresForwardSecrecy, NSExceptionAllowInsecureHTTPLoads 寫在下面便於復制。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM