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

来源:互联网 发布:华为云计算部门北京 编辑:程序博客网 时间:2024/05/01 10:14

最近有点偷懒了,好久没有更新博客了,最近在做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开启。
好了,就先说这么多,之后再补充…

1 0
原创粉丝点击