ATS的问题

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

NSExceptionDomains方式 设置域。可以简单理解成, 把不支持https协议的接口设置成http的接口 。

具体方法:

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

2)、然后给它添加一个Exception Domains,类型为字典类型;

3)、把需要的支持的域添加給Exception Domains。其中域作为Key,类型为字典类型。

4)、每个域下面需要设置3个属性:NSIncludesSubdomains、NSExceptionRequiresForwardSecrecy、NSExceptionAllowsInsecureHTTPLoads。

如图:


细节提示:在iOS9以后的系统中如果使用到网络图片,也要注意网络图片是否是HTTP的哦,如果是,也要把图片的域设置哦!

NSExceptionRequiresForwardSecrecy :是否满足上文中列举的加密算法。因为我们服务端不支持这些算法,所以我们设置为NO。

NSExceptionAllowsInsecureHTTPLoads : 是否为HTTPS的服务器。用这个配置可用访问那些没有证书、自签名证书、过期证书以及证书与域名匹配不上的服务器。默认值是NO。

NSIncludesSubdomains : 子域名是否使用同样的配置。默认值是NO。如果设置为YES,则子域名如api.baidu.com也都使用相同的配置

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

推荐阅读更多精彩内容

友情链接更多精彩内容