应用程序无法连接到iOS9设备上的网络,在iOS8上很好。

时间:2016-01-12 14:28:06

标签: networking ios8 ios9

在使用Xcode 7.2重新构建iOS9设备后,我们的应用程序无法连接到网络。在iOS8上连接正常,目前在App Store上的相同版本在iOS9上很好(基于Xcode 6)。我是否错过了可以解释这个问题的Xcode或iOS更新?感谢。

1 个答案:

答案 0 :(得分:1)

iOS 9引入了App Transport Security,它需要HTTPS(以及最低TLS版本)。默认情况下,不再允许不安全的连接。

  

从iOS 9.0和OS X v10.11开始,应用程序可以使用名为App Transport Security(ATS)的新安全功能,默认情况下已启用。它通过对基于HTTP的网络请求实施额外的安全要求,提高了应用程序和Web服务之间连接的隐私和数据完整性。具体而言,启用ATS后,HTTP连接必须使用HTTPS(RFC 2818)。尝试使用不安全的HTTP进行连接失败。此外,HTTPS请求必须使用最佳实践进行安全通信。

如果您正在与不支持SSL的服务器进行通信,则可以在应用的Info.plist中为该域添加例外:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>yourdomain.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>