过去,禁用ATS从未遇到任何问题,但现在我根本无法连接到http网址(请继续获取“错误:无法使用http方案联系服务器。仅允许使用https”)。通过阅读过去的问题,我已经尝试了info.plist中的一些操作,但是没有一个可以解决问题。这是我的info.plist的当前内容
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>domainTheAppIsTryingToContact.com</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
为什么上述方法无法使我通过http连接?
如果我只使用NSAllowsArbitraryLoads而不使用NSExceptionDomains,那么它也不起作用(我只是尝试使用NSExceptionDomains尝试使事情起作用)-因此,为什么ATS的文档如此说明: >
如果(NSAllowsArbitraryLoads)设置为YES,则禁用所有ATS限制 用于所有网络连接
这不是一个正确的声明,如果我收到“错误:无法使用http方案联系服务器。仅允许使用https”,则显然不会禁用所有网络连接的所有ATS限制
更新:我为URL运行了/ usr / bin / nscurl --ats-diagnostics,但一切都失败了。 但是,这又使我再次回到该Apple文档声明中-如果所有nscurl组合均失败,那么这不仅指向:“如果(NSAllowsArbitraryLoads)设置为YES,则禁用所有网络连接的所有ATS限制”再次声明。
答案 0 :(得分:-2)
如果您仍处于原型设计/开发模式,则应该可以将NSAllowsArbitraryLoads
更改为NSAllowsArbitraryLoadsInWebContent
,这使我可以运行以下内容并加载页面:
override func viewWillAppear(_ animated: Bool) {
webview.load(URLRequest.init(url:URL.init(string:"http://example.com")!))
}