美文网首页
IOS10下的ATS问题

IOS10下的ATS问题

作者: 张晓刚_云字节 | 来源:发表于2016-09-29 15:00 被阅读314次

最近IOS10更新之后,我的《微打卡》APP在调用微博API接口的时候,一直失败,提示以下错误:

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)

大部分的开发者都知道从IOS9以后,apple默认禁止非https的网络访问,所以我们的通用做法是在info.plist里增加

<key>NSAppTransportSecurity</key>
<dict> 
<key>NSAllowsArbitraryLoads</key> 
<true/>
</dict>

但是最新的wwdc的会上,苹果又放出新规:

从2017年1月1日起,,所有新提交的 app 默认不允许使用NSAllowsArbitraryLoads
来绕过ATS的限制,默认情况下你的 app 可以访问加密足够强的(TLS V1.2以上)HTTPS内容;

针对这个问题,我们可以使用NSExceptionDomains对特定域名开放http请求
,比如第三方微博登录,我们可以进行如下配置:

<key>NSAppTransportSecurity</key>
 <dict>
  <key>NSExceptionDomains</key>
  <dict>
   <key>sina.cn</key>
   <dict>
    <key>NSThirdPartyExceptionMinimumTLSVersion</key>
    <string>TLSv1.0</string>
    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
    <false/>
    <key>NSIncludesSubdomains</key>
    <true/>
   </dict>
   <key>weibo.cn</key>
   <dict>
    <key>NSThirdPartyExceptionMinimumTLSVersion</key>
    <string>TLSv1.0</string>
    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
    <false/>
    <key>NSIncludesSubdomains</key>
    <true/>
   </dict>
   <key>weibo. com</key>
   <dict>
    <key>NSThirdPartyExceptionMinimumTLSVersion</key>
    <string>TLSv1.0</string>
    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
    <false/>
    <key>NSIncludesSubdomains</key>
    <true/>
   </dict>
   <key>sinaimg.cn</key>
   <dict>
    <key>NSThirdPartyExceptionMinimumTLSVersion</key>
    <string>TLSv1.0</string>
    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
    <false/>
    <key>NSIncludesSubdomains</key>
    <true/>
   </dict>
   <key>sinajs.cn</key>
   <dict>
    <key>NSThirdPartyExceptionMinimumTLSVersion</key>
    <string>TLSv1.0</string>
    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
    <false/>
    <key>NSIncludesSubdomains</key>
    <true/>
   </dict>
   <key>sina.com.cn</key>
   <dict>
    <key>NSThirdPartyExceptionMinimumTLSVersion</key>
    <string>TLSv1.0</string>
    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
    <false/>
    <key>NSIncludesSubdomains</key>
    <true/>
   </dict>
  </dict>
 </dict>

不过,如果有条件还是建议将你的网站升级到https,毕竟这也是未来的趋势。

相关文章

  • IOS10下的ATS问题

    最近IOS10更新之后,我的《微打卡》APP在调用微博API接口的时候,一直失败,提示以下错误: NSURLSes...

  • iOS10 适配 ATS(app支持https通过App Sto

    iOS10 适配 ATS(app支持https通过App Store审核) iOS10 适配 ATS(app支持h...

  • iOS10 ATS问题方案

    iOS 9中默认非 http 的网络是被禁止的,我们当时的做法是把App Transport Security S...

  • iOS10适配ATS的问题

    OS 9中默认非HTTS的网络是被禁止的,当然我们也可以把NSAllowsArbitraryLoads设置为YES...

  • iOS10 ATS 配置的一点思考

    iOS10 ATS 配置的一点思考 ATS 无法对 IP 地址进行限制 假设要调用的 api 为 /foo/bar...

  • Xcode 8 beta版 && Xcode 8

    直奔主题iOS10关于ATS增强,因为项目只用到了UIwebView进行一些http请求,担心在iOS10中会带来...

  • iOS10 ATS https

    iOS 9中默认非HTTS的网络是被禁止的,当然我们也可以把NSAllowsArbitraryLoads设置为YE...

  • ios10切换到https注意事项

    ios10对https的要求有点严格,比如必须要TLS1.2以及以上的版本才可以。nscurl --ats-dia...

  • ATS的问题

    iOS 9中默认非HTTS的网络是被禁止的,当然我们也可以把NSAllowsArbitraryLoads设置为YE...

  • ATS迁移 SDWebImage 图片加载失败

    项目做ATS迁移 , 遇到的问题和大家分享那个一下 AFNetWorking都没问题 , 不过SDWebImage...

网友评论

      本文标题:IOS10下的ATS问题

      本文链接:https://www.haomeiwen.com/subject/tsakyttx.html