无法为iOS 11禁用http的App Transport Security

问题描述 投票:1回答:1

我以前从未遇到任何禁用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限制”为假声明再一次。

ios
1个回答
-2
投票

如果您仍处于原型设计/开发模式,您应该能够将NSAllowsArbitraryLoads更改为NSAllowsArbitraryLoadsInWebContent,这允许我运行以下内容并加载页面:

override func viewWillAppear(_ animated: Bool) {
  webview.load(URLRequest.init(url:URL.init(string:"http://example.com")!))
}
© www.soinside.com 2019 - 2024. All rights reserved.