我以前从未遇到任何禁用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方案联系服
更新:我为url运行了/ usr / bin / nscurl --ats-diagnostics,一切都失败了。然而,这只是让我再次回到那个Apple文档声明 - 如果所有nscurl组合都失败了,那么就不会指向:“如果(NSAllowsArbitraryLoads)设置为YES,则禁用所有网络连接的所有ATS限制”为假声明再一次。
如果您仍处于原型设计/开发模式,您应该能够将NSAllowsArbitraryLoads
更改为NSAllowsArbitraryLoadsInWebContent
,这允许我运行以下内容并加载页面:
override func viewWillAppear(_ animated: Bool) {
webview.load(URLRequest.init(url:URL.init(string:"http://example.com")!))
}