文章译自 iOS Development Tips .
Apple 近期针对iOS9做了一个比较激进的决定,禁用iOS App中所有不安全的HTTP通信,并将其作为App 传输安全(App Tranport Security, 简称ATS)的一部分。
这有助于安全更好的得到执行,但在很多情况下,开发者是无法控制服务器的。或者你可以控制服务器,你想在App 浏览器中像任意链接那样加载更多的外部内容。
如果你在ATS打开的情况下(使用NSURLSession
或者其他第三方库 AFNetworking
)尝试发送HTTP 请求,你就会看到以下错误:
Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo=0x12ed5bad0 {NSUnderlyingError=0x12ee495b0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1004.)"
下面向你展示如何完全禁用ATS。打开 Info.plist
,添加下面几行:
这是你万不得已采取的最后一招。当然,你的通信服务最好还是能支持HTTPS,了解更多细节。
网友评论
error : Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={NsUnderlyingError=0x170252d50}