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>
阅读 28.8k
5 个回答

代码没问题,应该是你加错了位置。尝试加到第五行:

pic

很有可能是@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

enter image description here

或者更直截了当一点,直接修改:

Project -> Your Target —>info-> Custom iOS target properties-> 添加禁用 ATS 的属性

enter image description here

更多 iOS9适配问题请访问--》 《iOS9适配系列教程 》

新手上路,请多包涵

我遇到了跟你一样的问题,弄了好久,突然发现了错误在哪,也许你跟我犯的错误一样。图片描述

注意你改plist文件的时候要看好你改的是那个plist,你应该改APPDelegate下面的那个plist文件

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进