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
2017年开始强制https的问题_第1张图片

应用场景

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

玩的开心......

你可能感兴趣的:(2017年开始强制https的问题)