我在iOS 9上运行app时,在模拟器上运行应用程序时,NSURLSession / NSURLConnection HTTP加载失败。 以下是我的info.plist文件的样子
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
<!--Include to allow insecure HTTP requests-->
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<!--Include to specify minimum TLS version-->
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
即使输入这些键值,Xcode控制台上也会显示相同的错误。请协助。
这是 info.plist
非常感谢!
答案 0 :(得分:3)
您需要定义要应用这些规则的网址。 您可以在Apple的文档页面上找到正确的声明: https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/
所以基本上你的Info.plist看起来应该是这样的并包含域名。
注意:为了获得更好的透明度,我还将NSAllowsArbitraryLoads
的默认值重新声明为false
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
<key>NSExceptionDomains</key>
<dict>
<key>yourdomain.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
最好的问候。
如果你只是不关心所有这些麻烦(我不推荐这个)并且只想调试你的UI,你可以选择暂时使用非默认的App TransportSecurity和只允许任何事情:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
我不确定,Apple是否会在AppStore Review中传递此内容; - )