ios9 HTTP网络请求失败 and 第三方sdk 报错问题解决方法
这样的错误:
解决方法:
在Build Setting中将Enable bitcode关闭,或设置编译标识ENABLE_BITCODE=NO。
这样:
HTTP网络请求失败
IOS9要求App内访问的网络必须使用HTTPS
协议。为了强制增强数据访问安全, iOS9 默认会把所NSURLConnection
、 CFURL
、 NSURLSession
发出的 HTTP 请求,都改为 HTTPS 请求:iOS9.x-SDK编译时,默认会让所有从NSURLConnection
、 CFURL
、 NSURLSession
发出的 HTTP 请求统一采用TLS 1.2 协议。因为 AFNetworking 现在的版本底层使用了 NSURLConnection
,众多App将被影响(基于iOS8.x-SDK的App不受影响)。服务器因此需要更新,以解析相关数据。如不更新,可通过在 Info.plist 中声明,倒退回不安全的网络请求。而这一做法,官方文档称为ATS,全称为App Transport Security,是iOS9的一个新特性。
方法一: 让公司服务端升级使用TLS 1.2
方法二: 可通过在info.plish中声明,倒回到不安全的网络请求,依然能让App访问指定http,甚至任意的http
1.在info.plist中添加
NSAppTransportSecurity
类型
Dictionary
2.在
NSAppTransportSecurity
下添加
NSAllowsArbitraryLoads
类型
Boolean
,值设为
YES