2017年开始强制https的问题

iOS9 中默认非HTTPS的协议是被禁止的,我们为了能正常发起http请求,在info.plist文件中添加AppTransportSecuritySettings字典,将NSAllowsArbitraryLoads设置为YES来禁止ATS。

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

解决方案

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

操作步骤

  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

应用场景

  1. 第三方不支持https请求的接口
  2. 不支持https协议的图片地址
  3. 不支持https协议的h5网址

玩的开心......

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

推荐阅读更多精彩内容

  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 4,630评论 0 12
  • 1.在iOS 9的时候,默认非HTTS的网络是被禁止的,我们可以在info.plist文件中添加NSAppTran...
    CrystalZhu阅读 15,858评论 5 10
  • 苹果文档翻译 iOS10 NSAppTransportSecurity 原文链接 原文版本:2016-09-07 ...
    fever105阅读 12,590评论 8 12
  • 笔者自语:令人头疼的https配置终于告一段落,回顾之前的遇到各种没有概念的问题,是一个即心酸有蛋疼的过程。终于有...
    商鞅福泽谕吉阅读 6,367评论 1 5
  • 一直想找一个地方可以写写东西,就像自己的日记一样,不求深刻,只想是可以记录下自己的很多想法和感受。今天在微博上看到...
    海儿1990阅读 174评论 0 2