根据以下错误消息,我需要在info.plist中设置什么来启用HTTP模式?

传输安全性已阻止明文HTTP(HTTP://)资源因为它是不安全的。可以通过以下方式配置临时异常应用程序的Info.plist文件。

假设我的域名是example.com。


当前回答

请参阅论坛帖子应用程序传输安全?。

例如,您可以添加特定域,如:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>example.com</key>
    <dict>
      <!--Include to allow subdomains-->
      <key>NSIncludesSubdomains</key>
      <true/>
      <!--Include to allow HTTP requests-->
      <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
      <true/>
      <!--Include to specify minimum TLS version-->
      <key>NSTemporaryExceptionMinimumTLSVersion</key>
      <string>TLSv1.1</string>
    </dict>
  </dict>
</dict>

懒惰选项是:

<key>NSAppTransportSecurity</key>
<dict>
  <!--Include to allow all connections (DANGER)-->
  <key>NSAllowsArbitraryLoads</key>
      <true/>
</dict>

###注:

info.plist是一个XML文件,因此您可以将这些代码或多或少地放在文件中的任何位置。

其他回答

注意:plist中的异常域应该是小写。

示例:您已在“设置”->“共享”下将计算机命名为“MyAwesomeMacbook”;您的服务器(出于测试目的)正在MyAwesomeMacbook.local:3000上运行,您的应用程序需要向http://MyAwesomeMacbook.local:3000/files...,您的plist需要指定“myawesomemacbook.local”作为异常域。

--

您的info.plist将包含。。。

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>myawesomemacbook.local</key>
    <dict>
      <!--Include to allow subdomains-->
      <key>NSIncludesSubdomains</key>
      <true/>
      <!--Include to allow HTTP requests-->
      <key>NSExceptionAllowsInsecureHTTPLoads</key>
      <true/>
    </dict>
  </dict>
</dict>

正如许多人所指出的,这是iOS 9.0附带的一个功能问题。他们添加了一个叫做应用程序传输安全的东西,当它破坏了我的应用程序时,我也很生气。

您可以在.plist文件中的NSAppTransportSecurity字典下使用NSAllowsArbitraryLoads键将其绑定为YES,但最终您需要重新编写形成URL的代码以形成HTTPS://前缀。

苹果在iOS 9.0中重新编写了NSUrlConnection类。您可以在NSURLConnection中了解它。

否则,您可能必须退出iOS 9.0,直到有时间实施正确的解决方案。

我不喜欢直接编辑plist。您可以使用GUI轻松地将其添加到plist:

单击左侧导航器中的Info.plist。现在更改主区域中的数据:在最后一行添加+输入组的名称:应用程序传输安全设置右键单击组并选择“添加行”输入允许任意加载将右侧的值设置为YES

使用NSAppTransportSecurity:

您必须在info.plist文件中的NSAppsTransportSecurity字典下将NSAllowsArbitraryLoads键设置为YES。

也许值得一提的是如何到达那里。。。

Info.plist是Main.storyboard或viewController.swift下面的文件之一。

当您第一次单击它时,它通常是表格格式的,因此右键单击该文件并“打开为”源代码,然后将下面的代码添加到末尾,即:

 <key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict>

复制粘贴代码

 "</dict>
</plist>"

这是在最后。