iOS10适配ATS的问题

OS 9中默认非HTTS的网络是被禁止的,当然我们也可以把NSAllowsArbitraryLoads设置为YES禁用ATS。不过iOS 10从2017年1月1日起苹果不允许我们通过这个方法跳过ATS,也就是说强制我们用HTTPS,如果不这样的话提交App可能会被拒绝。但是我们可以通过NSExceptionDomains来针对特定的域名开放HTTP可以容易通过审核。

1、首先需要后台兼容ssl

2、需要在info.plist中删除原有的兼容HTTPS的 App Transport Security Settings 中的 Allow Arbitrary Loads :YES 删除

3、然后添加例外NSExceptionDomains

添加的域名为字典类型的 每个字典类型下面的key有三种NSIncludesSubdomains、NSExceptionRequiresForwardSecrecy、NSExceptionAllowsInsecureHTTPLoads。全都是BOOL类型的

  • NSIncludesSubdomains是否允许子域名使用http YES 就是允许
  • NSExceptionRequiresForwardSecrecy 这个添加例外的话一般都是设置为NO 的看要不然也没有添加例外的必要了。
  • NSExceptionAllowsInsecureHTTPLoads 是否允许在HTTPS环境下使用http 添加HTTP类外当然YES

示例如下图阿里云的服务器。只需要设置域名。而不是子域名。

注意 !图片的域名如果是http的话也要添加例外的。要不然图片是加载不出来的。

Paste_Image.png

如有疑问欢迎交流。我会第一时间回复。

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

相关阅读更多精彩内容

友情链接更多精彩内容