第一次使用Xcode7的阿猿们都会遇到这个问题,经Google查证后得知是因为iOS9引入了新特性App Transport Security (ATS)。
详情:App Transport Security (ATS) 下面是Xcode错误信息:
The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.
新特性要求App内访问的网络必须使用HTTPS协议,如果项目使用的是HTTP协议,使用私有加密方式保证数据安全,现在也不能马上改成HTTPS协议传输。
Xcode7.0的解决办法
1.在Info.plist中添加NSAppTransportSecurity
类型Dictionary。
2.在NSAppTransportSecurity
下添加NSAllowsArbitraryLoads
类型Boolean,值设为YES
注意:单元测试下面也有一个Info.plist,修改那个文件是没有作用的。
Xcode7.1和以后的解决办法
7.1苹果改了这项设定的名称,也就是
NSAppTransportSecurity
改为了App Transport Security Settings
NSAllowsArbitraryLoads
改为了Allows Arbitrary Loads
拷贝代码 - 粘贴到info.plist文件,不需要Open As -> Source Code。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> </plist>