iOS 9中默认非HTTS的网络是被禁止的,当然我们也可以把NSAllowsArbitraryLoads设置为YES禁用ATS。不过iOS 10从2017年1月1日起苹果不允许我们通过这个方法跳过ATS,也就是说强制我们用HTTPS,如果不这样的话提交App可能会被拒绝。但是我们可以通过NSExceptionDomains来针对特定的域名开放HTTP可以容易通过审核。
NSExceptionDomains方式 设置域。
具体方法:
1)、在项目的info.plist中添加一个Key:App Transport Security Settings,类型为字典类型。
2)、然后给它添加一个Exception Domains,类型为字典类型;
3)、把需要的支持的域添加給Exception Domains。其中域作为Key,类型为字典类型。
4)、每个域下面需要设置3个属性:
NSIncludesSubdomains( 设置为YES,当前域名的 ATS 策略适用于其所有子域名。默认为NO)
NSExceptionRequiresForwardSecrecy( 设置为NO,允许针对当前域名使用不支持正向保密的 TLS 加密算法。默认为YES)
NSExceptionAllowsInsecureHTTPLoads(设置为YES,可以同时通过 HTTP 和 HTTPS 访问当前域名。默认为NO。 注意,配置这个键值,将引发 App Store 的审查,开发者必须说明原因)
如图:
![](https://img.haomeiwen.com/i4945909/6401d4140f5f07c1.png)
细节提示:在iOS9以后的系统中如果使用到网络图片,也要注意网络图片是否是HTTP的哦,如果是,也要把图片的域设置哦!
相关博客:
https://www.cnblogs.com/oc-bowen/p/5916630.html
https://www.cnblogs.com/dsxniubility/p/4821184.html
网友评论