iOS 适配iOS9

Posted 张玉宝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章

iOS9适配小结

iOS 适配iOS9

项目适配iOS9的bug

xcode7和ios9适配之路

友盟分享适配iOS9

iOS调用系统通讯录(适配iOS9iOS10)(转载)