尝试在iOS9模拟器上运行应用程序后,我遇到了以下令人讨厌的警告
由于App Transport Security,无法加载资源 策略要求使用安全连接。
谷歌搜索解决方案后,我发现了一个。
打开您的project's .plist
文件作为源代码并添加这些行:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>mydomain.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
清理了构建,跑了 - 看到了类似的警告 之后,我尝试了其中列出的各种其他方法How do I load an HTTP URL with App Transport Security enabled in iOS 9?
没有工作。
我尝试允许所有域名,即使这是一种拒绝风险的方法。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
它也没用。无论我如何编辑plist
文件,似乎Xcode 7.0.1都会覆盖此配置。
期待有关该主题的任何建议。
答案 0 :(得分:1)
您正在呼叫的域名具有哪个安全版层?
Apple默认设置为1.2 TLS。您的API可能是1.1或1.0安全性。尝试设置 NSExceptionMinimumTLSVersion 。只需在info.plist中编辑您提到域名的字典。以下是TLS版本1.0安全性的示例。
<key>mydomain.com</key>
<dict>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>