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

一. 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 很可能你的应用是与一个支持HTTPS传输数据的服务器交互,但是并没有使用TLS 1.2或更高。在这种情况下,你定义...
    Www刘阅读 3,259评论 0 5
  • 编者按:本文来自腾讯第三方崩溃捕获服务Bugly,近期他们支持 ATS 及 Bitcode 特性的 SDK 即将发...
    imageURL阅读 362评论 0 2
  • su命令和sudo服务 su命令用于变更使用者的身份,格式是su |-| 用户名 例1:从root用户切换到us...
    草虫1984阅读 228评论 0 1
  • 人生若只如初见, 何事秋风悲画扇。 为什么命运会安排我们相遇呢 ...
    画屏香dxt阅读 445评论 1 4
  • 17岁遇到你,在一个大雪纷风的午后,看不清你的脸,不知道你是谁,陌生的身影。那时,生来懵懂、羞涩,不爱说话,从来 ...
    肥肉先生阅读 323评论 2 0

友情链接更多精彩内容