首页 > 代码库 > 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