在 iOS 9 模拟器上未连接到互联网
Not connecting to internet on iOS 9 simulator
我正在使用 Xcode 7。当 iOS 9 模拟器没有连接到互联网时,我将应用程序传输安全添加到 info.plist 以允许不安全的通信。它确实工作了一段时间。但是,它再次停止工作。已尝试 'reset content and settings',正在重新启动。似乎没有任何效果。
有人遇到过这个吗?知道怎么解决吗?
谢谢。
要配置每个域的例外,以便您的应用可以连接到不安全的(或未启用 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
中这样做,如下图所示:
对于演示,您可以如下图所示:
但是如果我不知道我需要使用的所有不安全域怎么办?
如果您的应用程序(例如第三方网络浏览器)需要加载任意内容,Apple 提供了一种完全禁用 ATS 的方法,但我怀疑您最好谨慎使用此功能:
<key>NSAppTransportSecurity</key>
<dict>
<!--Include to allow all connections (DANGER)-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
您可以找到它的技术说明Here
您可以在此处找到与问题相关的详细信息
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
我正在使用 Xcode 7。当 iOS 9 模拟器没有连接到互联网时,我将应用程序传输安全添加到 info.plist 以允许不安全的通信。它确实工作了一段时间。但是,它再次停止工作。已尝试 'reset content and settings',正在重新启动。似乎没有任何效果。 有人遇到过这个吗?知道怎么解决吗?
谢谢。
要配置每个域的例外,以便您的应用可以连接到不安全的(或未启用 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
中这样做,如下图所示:
对于演示,您可以如下图所示:
但是如果我不知道我需要使用的所有不安全域怎么办?
如果您的应用程序(例如第三方网络浏览器)需要加载任意内容,Apple 提供了一种完全禁用 ATS 的方法,但我怀疑您最好谨慎使用此功能:
<key>NSAppTransportSecurity</key>
<dict>
<!--Include to allow all connections (DANGER)-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
您可以找到它的技术说明Here
您可以在此处找到与问题相关的详细信息 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