[iOS] ATS设置HTTP允许访问无效的解决办法

iOS9 中默认非HTTPS的协议是被禁止的,解决方案是我们可以在info.plist文件中添加AppTransportSecuritySettings字典,将NSAllowsArbitraryLoads设置为YES来禁用ATS。

iOS10 从2017年1月1日起苹果提出所有新提交的App默认不允许使用NSAllowsArbitraryLoads来绕过ATS的限制,也就是说强制我们用HTTPS,如果不这样的话提交App可能会被拒绝。

解决方案:我们可以通过NSExceptionDomains设置白名单的方式来针对特定的域名开放HTTP内容来通过审核。可以简单理解成,把不支持https协议的接口设置成http的接口。

操作:

    1)在项目info.plist中添加一个Key:App Transport Security Settings,类型为

       Dictionary;

    2)在其内添加一个Key: Exception Domains,类型为Dictionary;

    3)在Exception Domains内添加要支持的域,其中域作为Key,类型为Dictionary;

    4)每个域下面需要设置3个属性:类型为Boolean; 

       NSIncludesSubdomains  YES

       NSExceptionRequiresForwardSecrecy  NO

       NSExceptionAllowsInsecureHTTPLoads  YES


   注意:每个需添加的域都需要设置此三个属性。如果请求的网络图片是HTTP,也是需要设置的图片的域



---------------------

来源:CSDN

原文:https://blog.csdn.net/fucuiping_1314/article/details/52596809

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 4,557评论 0 12
  • iOS 10 适配 ATS 一. HTTPS 其实HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HT...
    made_China阅读 1,735评论 0 12
  • 1.在iOS 9的时候,默认非HTTS的网络是被禁止的,我们可以在info.plist文件中添加NSAppTran...
    CrystalZhu阅读 15,840评论 5 10
  • 笔者自语:令人头疼的https配置终于告一段落,回顾之前的遇到各种没有概念的问题,是一个即心酸有蛋疼的过程。终于有...
    商鞅福泽谕吉阅读 6,350评论 1 5
  • 你说的无所谓 就是我的一切和目标 你说的无所谓 是我穷极一生的追求 你说的无所谓 是我在佛前苦苦求来的 你说的无所...
    南巷有北街阅读 257评论 0 0