您的位置:首页 > 理论基础 > 计算机网络

关于iOS全面https,2017年1月1日开启ATS审核

2016-11-25 11:51 477 查看
最近有点偷懒了,好久没有更新博客了,最近在做https的升级,将一些自己的心得给大家分享一下。

如题,2017年1月1日之后再进行提交苹果审核时,会对应用里是否打开ATS进行验证,强制应用开启ATS,没有开启的应用应该会被拒吧。现在各大厂商基本也都将https升级完成,之前由于需求比较紧,一直也没有抽出时间来搞。。。

在iOS9.x-SDK编译时,默认会让所有从NSURLConnection 、 CFURL 、 NSURLSession发出的 HTTP 请求统一采用TLS v1.2 协议,这里需要注意一下是TLS v1.2版本,在后台人员进行开发的时候就要沟通到位,否则在后台人员开发完成之后,你怎么调都调不通,最后会发现是TLS版本太低导致请求不通。

具体的一些关于iOS里如何发送HTTPS的请求,这个在网上一搜一大把,就不多做赘述,主要说一下在应用里有关第三方类库如何适配HTTPS,在公司自己域名改建了https之后,就可以正常使用ATS了,如果app里使用了第三方类库(有进行网络请求,并且是http的请求),这个时候如果只是单纯的将ATS打开之后,就会造成这些三方类库的网络请求不成功,可能会影响正常的使用。这里苹果就有比较人性化的开关(水果万岁~~),就是混合ATS,自己的https+第三方类库的http,在审核的时候应该对三方类库使用http请求进行描述,否则可能面临被拒审的风险。

下面在当前项目的TARGETS里的info.plist添加如下设置:

<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>www.baidu.com</key>
<dict>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>www.qq.com</key>
<dict>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>


以上是使用www.baidu.com和www.qq.com进行举例,如果之前关闭了ATS,需要先将ATS开启。

好了,就先说这么多,之后再补充…
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: