一. App Transport Security
iOS9中新增App Transport Security(簡稱ATS)特性, 主要使原來請求的時候用到的HTTP,都轉(zhuǎn)向TLS1.2協(xié)議進(jìn)行傳輸互拾。這也意味著所有的HTTP協(xié)議都強(qiáng)制使用了HTTPS協(xié)議進(jìn)行傳輸怪瓶。
在 iOS 9 和 OS X 10.11 中萧落,默認(rèn)情況下非 HTTPS 的網(wǎng)絡(luò)訪問是被禁止的。當(dāng)然洗贰,因為這樣的推進(jìn)影響面非常廣找岖,作為緩沖,我們可以在 Info.plist 中添加 NSAppTransportSecurity 字典并且將 NSAllowsArbitraryLoads 設(shè)置為 YES 來禁用 ATS敛滋。
設(shè)置如下:
運(yùn)行一下,如果運(yùn)行不成功,報如下錯誤
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配置的程序?qū)贏pp store上被編譯和鏈接。bitcode允許蘋果在后期重新優(yōu)化程序的二進(jìn)制文件帖旨,而不需要重新提交一個新的版本到App store上箕昭。
當(dāng)提交程序到App store上時,Xcode會將程序編譯為一個中間表現(xiàn)形式(bitcode)解阅。然后App store會再將這個botcode編譯為可執(zhí)行的64位或32位程序落竹。
解決
要么讓第三方庫支持,要么關(guān)閉target的bitcode選項货抄。
所以述召,如果我們的工程需要支持bitcode,則必要要求所有引入的第三方庫都支持bitcode蟹地。(將YES變?yōu)镹O)