天天看点

IOS 9 关于微信,QQ三方登陆的https适配结局方案,XCODE配置

OS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL。采用TLS 1.2 协议,目的是 强制增强数据访问安全,而且 系统 Foundation 框架下的相关网络请求,将不再默认使用 Http 等不安全的网络协议,而默认采用 TLS 1.2。服务器因此需要更新,以解析相关数据。如不更新,可通过在 Info.plist 中声明,倒退回不安全的网络请求。OS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL。采用TLS 1.2 协议,目的是 强制增强数据访问安全,而且 系统 Foundation 框架下的相关网络请求,将不再默认使用 Http 等不安全的网络协议,而默认采用 TLS 1.2。服务器因此需要更新,以解析相关数据。如不更新,可通过在 Info.plist 中声明,倒退回不安全的网络请求。OS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL。采用TLS 1.2 协议,目的是 强制增强数据访问安全,而且 系统 Foundation 框架下的相关网络请求,将不再默认使用 Http 等不安全的网络协议,而默认采用 TLS 1.2。服务器因此需要更新,以解析相关数据。如不更新,可通过在 Info.plist 中声明,倒退回不安全的网络请求。

对于我们开发者,必须要了解什么是TLS1.2 ,在IOS9 发布之后,我将XCODE升级到了7.0版本,同事升级iphone 到9.0,这时候发现打开列表无法展示数据,然后看了一下官方文档,最终找到如何屏蔽使用HTTPS协议,继续使用不安全的HTTP 协议的方法,那就是在项目的info.plist中配置,屏蔽TLS1.2 协议的使用,继续使用不安全的HTTP 协议,

这里不多说,直接上结果:

在info.plist 中添加如下内容

<key>NSAppTransportSecurity</key>

    <dict>

        <key>NSAllowsArbitraryLoads</key>

        <true/>

    </dict>

IOS 9 关于微信,QQ三方登陆的https适配结局方案,XCODE配置

如图,红色标示的是需要添加的东西, 原理是:添加这个就可以让你的APP跳过apple 的网络更新要求,继续使用原来的HTTP协议,但是当你的服务器更新到HTTPS协议之后,这些信息就可以删除

下面介绍一下对于三方登陆和分享收藏相关的网络问题

升级之后也会相继出现QQ,微信,微博都不显示已安装的状态,走代码调试发现就好像没有安装一样,其根本原因也是网络协议导致,最终的解决方案还是要适配IOS9 ,如果不适配那就屏蔽他,具体方法是:配置plist文件,如图所示

IOS 9 关于微信,QQ三方登陆的https适配结局方案,XCODE配置

解释一下这些都是什么东西:

首先LSApplicationQueruesSchemes我想大家应该知道,所添加的东西,item0,item1,是支付宝平台的分享相关

item2,item3,分别是微信的登陆和分享收藏,如果你只添加weixin这一项,出现的情况是只能登陆,不能分享,

剩下的都是QQ,QQ空间的登陆和分享相关的SDK所涉及到的API访问权限的设置。

在这里,可以将登陆分享相关的API列到网络访问允许的队列,相当于白名单,所以可以继续沿用IOS8 的网络请求,

<key>LSApplicationQueriesSchemes</key>

    <array>

        <string>alipay</string>

        <string>alipayshare</string>

        <string>weixin</string>

        <string>wechat</string>

        <string>mqq</string>

        <string>mqqopensdkapiV2</string>

        <string>mqqOpensdkSSoLogin</string>

        <string>mqqopensdkapiV3</string>

        <string>wtloginmqq2</string>

        <string>mqqapi</string>

    </array>

直接将这段代码贴到plist文件中,就可以完美的登陆微信,QQ和进行相关的分享了,