NSCurl ATS 有效,IOS 9 无效

NSCurl ATS works, IOS 9 does not

这是来自 NSCURL 的日志:

Default ATS Secure Connection
---
ATS Default Connection
ATS Dictionary:
{
}
Result : PASS
---

并且来自 IOS 9 模拟器:

2015-11-02 20:52:29.928 energyvue[1137:17754] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)

不过 url 在端口 9445 上。有没有办法在不覆盖 ats 传输安全性的情况下完成这项工作?

我遇到了同样的问题,并且可以在模拟器 iOS9.2 上进行通信,但不能进入设备。

我解决了在设备 (http://jonathanblog2000.blogspot.com.br/2015/07/using-cfnetworkdiagnostics-for-network.html) and using a Cordova ATS Hybrid App Demo as sample (http://moduscreate.com/cordova-5-ios-9-security-policy-changes/) 上检查 CFNetwork 登录的问题。

我的最终 ATS 配置:

    <key>NSAppTransportSecurity</key>
    <dict>
       <key>NSExceptionDomains</key>
       <dict>
        <key>mydomain.com</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
    </dict>
</dict>

我的环境:

  • API 使用带 SNI 的 HTTPS TLSv1.2(亚马逊 AWS 云前端、S3 和 Elasticbeanstalk)
  • iPhone 5S iOS 9.2 和 Mac OS X El Capitan
  • 具有 Ionic 框架和 AngularJS
  • 的混合应用程序