iOS9 HTTP 修改 Info.plist 文件后还是不能正常使用
最近在做 iOS9 的网络适配,公司用的 HTTP 协议,因为 iOS9 ATS 导致项目不能正常使用,报错是
Failed to send request for reason:Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection."
显然是 ATS 的问题。但是我修改了 Info.plist 文件之后还是报错,而且报错信息没有变,请问大家有没有遇到的或者有什么解决方案吗?
还有,我是这样修改的 Info.plist
文件:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
很有可能是@iOS程序犭袁说的这种情况,其实想在iOS9中使用HTTP的话,不一定非要改动info.plist,ATS是苹果基于NSURL做的处理,那么使用CFNetwork做网络请求的话,是没问题的。ASIHTTPRequest就是基于CFNetwork做的封装,你可以看看,不过ASI写的太多了,有些用不上,我是自己仿照ASI基于CFNetwork封装了一下,ASI的SLL/TSL证书校验有问题,我自己重新封装了HTTPS的证书校验。如果以后你还是使用CFNetwork但是又想使用HTTPS了,关于SSL/TSL证书校验的问题,可以私信我,交流交流。
IOS9要求所有接口使用https.错误原因就是这个
遇到这类问题,90%是出现在“一个 Project 多 Target ”的情况下,所以
请确保你修改的,确实是你的 Target 所属的 Info.plist !
如何确认?请前往这里,确认你 Target 所属的 Info.plist 究竟是哪个:
Project -> Your Target -> Build Settings -> Info.plist File
或者更直截了当一点,直接修改:
Project -> Your Target —>info-> Custom iOS target properties-> 添加禁用 ATS 的属性
更多 iOS9适配问题请访问--》 《iOS9适配系列教程 》
我遇到了跟你一样的问题,弄了好久,突然发现了错误在哪,也许你跟我犯的错误一样。
注意你改plist文件的时候要看好你改的是那个plist,你应该改APPDelegate下面的那个plist文件