在iOS 9模拟器上没有连接到互联网

时间:2015-10-08 08:23:29

标签: ios objective-c xcode ios9 xcode7

我正在使用Xcode 7.当iOS 9模拟器没有连接到互联网时,我将App传输安全性添加到info.plist以允许不安全的通信。它确实工作了一段时间。但同样,它已停止工作。尝试过“重置内容和设置”,重新启动。似乎没什么用。 有人遇到过这个吗?知道怎么解决?

感谢。

2 个答案:

答案 0 :(得分:0)

要配置每个网域的例外,以便您的应用可以连接到非安全(或非TLSv1.2启用的安全主机),请将这些密钥添加到您的Info.plist(并注意Xcode目前不从第一个Xcode 7 beta种子开始自动完成这些键:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>yourserver.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>

您还可以使用其他键来配置App Transport Security,例如:

NSRequiresCertificateTransparency
NSTemporaryExceptionRequiresForwardSecrecy
NSTemporaryThirdPartyExceptionAllowsInsecureHTTPLoads
NSTemporaryThirdPartyExceptionMinimumTLSVersion
NSTemporaryThirdPartyExceptionRequiresForwardSecrecy

对于演示,您可以在info.plist中执行此操作,如下图所示:

enter image description here

对于Demostration,你可以这样做,如下图所示:

但如果我不知道我需要使用的所有不安全域,该怎么办?

如果您的应用程序(例如第三方Web浏览器)需要加载任意内容,Apple会提供一种完全禁用ATS的方法,但我怀疑您谨慎使用此功能:

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

您可以找到其技术说明Here

答案 1 :(得分:0)

您可以在此处找到与问题相关的详细信息 App Transport Security Exceptions in iOS 9 and OSX 10.11

Apple提供了一种完全禁用ATS的方法

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

您还可以使用其他键来配置App Transport Security

NSRequiresCertificateTransparency
NSTemporaryExceptionRequiresForwardSecrecy
NSTemporaryThirdPartyExceptionAllowsInsecureHTTPLoads
NSTemporaryThirdPartyExceptionMinimumTLSVersion
NSTemporaryThirdPartyExceptionRequiresForwardSecrecy