美文网首页
适配 ATS(网络请求错误的解决)

适配 ATS(网络请求错误的解决)

作者: 小胖子2号 | 来源:发表于2017-03-07 14:57 被阅读44次

    一. App Transport Security

    iOS9中新增App Transport Security(简称ATS)特性, 主要使原来请求的时候用到的HTTP,都转向TLS1.2协议进行传输。这也意味着所有的HTTP协议都强制使用了HTTPS协议进行传输。

    在 iOS 9 和 OS X 10.11 中,默认情况下非 HTTPS 的网络访问是被禁止的。当然,因为这样的推进影响面非常广,作为缓冲,我们可以在 Info.plist 中添加 NSAppTransportSecurity 字典并且将 NSAllowsArbitraryLoads 设置为 YES 来禁用 ATS。

    设置如下:

    1.png

    运行一下,如果运行不成功,报如下错误

    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配置的程序将会在App store上被编译和链接。bitcode允许苹果在后期重新优化程序的二进制文件,而不需要重新提交一个新的版本到App store上。

    当提交程序到App store上时,Xcode会将程序编译为一个中间表现形式(bitcode)。然后App store会再将这个botcode编译为可执行的64位或32位程序。

    解决

    要么让第三方库支持,要么关闭target的bitcode选项。

    所以,如果我们的工程需要支持bitcode,则必要要求所有引入的第三方库都支持bitcode。(将YES变为NO)

    2.png

    相关文章

      网友评论

          本文标题:适配 ATS(网络请求错误的解决)

          本文链接:https://www.haomeiwen.com/subject/dmsmgttx.html