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

最近有点偷懒了,好久没有更新博客了,最近在做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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值