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 寫在下面便於復制。