这是来自 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 上可以通信,但不能进入设备。
我解决了在设备上检查 CFNetwork 日志 (http://jonathanblog2000.blogspot.com.br/2015/07/using-cfnetworkdiagnostics-for-network.html) 并使用 Cordova ATS Hybrid App Demo 作为示例 (http://moduscreate.com/cordova-5-ios-9-security-policy-changes/) 的问题。
我的最终 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 使用 HTTPS TLSv1.2 和 SNI(亚马逊 AWS 云前端、S3 和 Elasticbeanstalk)
- iPhone 5S iOS 9.2 和 Mac OS X El Capitan
- 采用 Ionic 框架和 AngularJS 的混合应用
关于ios - NSCurl ATS 工作,IOS 9 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33491615/