iOS9网络适配

  今天升级Xcode7.0,发现网络访问失败。
  输出错误信息:The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

  Google后查证,iOS9引入了新特性App Transport Security (ATS)。新特性要求App内访问的网络必须使用HTTPS协议:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL。采用TLS 1.2 协议,目的是强制增强数据访问安全,而且 系统 Foundation 框架下的相关网络请求,将不再默认使用 Http 等不安全的网络协议,而默认采用 TLS 1.2。

  服务器因此需要更新,以解析相关数据。但是现在公司的项目使用的是HTTP协议,使用私有加密方式保证数据安全,现在也不能马上改成HTTPS协议传输。如不更新,可通过在 Info.plist 中声明,倒退回不安全的网络请求。

  现有两种解决方案:

  方案一:立即让公司的服务端升级使用TLS 1.2

  方案二:虽Apple不建议,但可通过在 Info.plist 中声明,倒退回不安全的网络请求依然能让App访问指定http,甚至任意的http,

      1.在Info.plist中添加NSAppTransportSecurity类型Dictionary

      2.在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES

      3.清理缓存即可

 

posted on 2015-09-17 16:45  乱七八糟21号  阅读(258)  评论(0编辑  收藏  举报

导航