首页 > 代码库 > iOS 适配iOS9

iOS 适配iOS9

1、网络接口不支持https协议,在iOS9下

 在iOS9下,系统默认会拦截对http协议接口的访问,因此无法获取http协议接口的数据。

 解决方案(以下方法2选1):

(1)暂时退回到http协议

具体方法:

在项目的info.plist中添加一个Key:NSAppTransportSecurity,类型为字典类型。

然后给它添加一个Key:NSAllowsArbitraryLoads,类型为Boolean类型,值为YES;

技术分享

 

2016.01.06更新:

随着SDK版本的更新,这里需要以下更新。

具体方法:

在项目的info.plist中添加一个Key:App Transport Security Settings,类型为字典类型。

然后给它添加一个Key:Allow Arbitrary Loads,类型为Boolean类型,值为YES;

如图:

技术分享

 

 (2)设置域。

可以简单理解成,把不支持https协议的接口设置成http的接口。

具体方法:

1)、在项目的info.plist中添加一个Key:NSAppTransportSecurity,类型为字典类型。

2)、然后给它添加一个NSExceptionDomains,类型为字典类型;

3)、把需要的支持的域添加給NSExceptionDomains。其中域作为Key,类型为字典类型。

4)、每个域下面需要设置3个属性:NSIncludesSubdomains、NSExceptionRequiresForwardSecrecy、NSExceptionAllowsInsecureHTTPLoads。

均为Boolean类型,值分别为YES、NO、YES。

技术分享

 

2、大部分社交平台SDK不支持bitcode。

问题描述:iOS 9新建项目默认需要支持bitcode,而不支持bitcode的SDK会导致无法编译运行。

解决方案:

(1)暂时关闭对bitcode的支持(建议),方法如下图

(2)移除不支持bitcode的平台SDK。

技术分享

 

3、添加Scheme白名单。

问题描述:在iOS 9下涉及到平台客户端跳转,系统会自动到项目info.plist下检测是否设置平台Scheme。对于需要配置的平台,如果没有配置,就无法正常跳转平台客户端。因此要支持客户端的分享和授权等,需要配置Scheme名单。

具体方法:

1)在项目的info.plist中添加一LSApplicationQueriesSchemes,类型为Array。

2)然后给它添加一个需要支持的项目,类型为字符串类型;

技术分享

 

参考链接:http://wiki.mob.com/ios9-对sharesdk的影响(适配ios-9必读)/

  

iOS 适配iOS9