根据以下错误消息,我需要在info.plist中设置什么来启用HTTP模式?
传输安全性已阻止明文HTTP(HTTP://)资源因为它是不安全的。可以通过以下方式配置临时异常应用程序的Info.plist文件。
假设我的域名是example.com。
根据以下错误消息,我需要在info.plist中设置什么来启用HTTP模式?
传输安全性已阻止明文HTTP(HTTP://)资源因为它是不安全的。可以通过以下方式配置临时异常应用程序的Info.plist文件。
假设我的域名是example.com。
当前回答
默认情况下,iOS仅允许HTTPS API。由于HTTP不安全,您必须禁用应用程序传输安全性。有两种禁用ATS的方法:-
1.在项目info.plist中添加源代码,并在根标记中添加以下代码。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
2.使用项目信息。
单击左侧窗格中项目上的项目,选择项目作为目标,然后选择信息选项卡。您必须按照以下结构添加字典。
其他回答
Use:
在类型为Dictionary的plist文件中添加新项NSAppTransportSecurity,然后在类型为Boolean的字典中添加子项NSAllowsArbitraryLoads,并设置bool值YES。这对我有用。
使用NSExceptionDomains可能不会同时应用效果,因为目标站点可能会通过http从外部域加载资源(例如js文件)。它也可以通过将这些外部域添加到NSExceptionDomains来解决。
若要检查哪些资源无法加载,请尝试使用远程调试。这里有一个教程:http://geeklearning.io/apache-cordova-and-remote-debugging-on-ios/
在swift 4和xocde 10中,将NSAllowsArbitraryLoads更改为允许任意加载。所以它将是这样的:
<key>App Transport Security Settings</key>
<dict>
<key>Allow Arbitrary Loads</key><true/>
</dict>
有两种解决方案:
解决方案1:
在Info.plist文件中添加密钥为“NSAppTransportSecurity”的字典在字典中添加另一个关键字为“允许任意加载”的元素
Plist结构应如下图所示。
解决方案2:
在Info.plist文件中添加密钥为“NSAppTransportSecurity”的字典在字典中添加另一个键为“NSExceptionDomains”的元素添加具有NSDictionary类型的键“MyDomainName.com”的元素添加具有布尔类型的键“NSIncludesSubdomains”且值设置为YES的元素添加具有Boolean类型的键“NSTemporaryExceptionAllowsInsecureHTTPLoads”且值设置为YES的元素
Plist结构应如下图所示。
首选解决方案2,因为它只允许选定的域,而解决方案1允许所有不安全的HTTP连接。
更新Xcode 7.1,面临问题27.10.15:
Info.plist中的新值是“App Transport Security Settings”。从此,本词典应包含:
允许任意加载=是例外域(在此处插入您的http域)