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