您的位置:首页 > 移动开发 > IOS开发

iOS9问题备忘

2015-09-22 11:16 615 查看
iOS9.0升级后,相应的APP作如下修改

1:info.plist中增加:

NSAppTransportSecurity类型Dictionary

在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设置为YES

原因是iOS9引入了新特性App Transport Security(ATS),新特性要求APP内访问的网络必须使用HTTPS协议

为了兼容HTTP协议,需如上步骤进行配置;(偷的图)



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

在Info.plist中添加一个Key: NSAppTransportSecurity,类型为Dictionary

在NSAppTransportSecurity下,添加一个:NSExceptionDomains属性,类型为字典类型;

把需要支持的域添加给NSExceptionDomains。其中域作为Key,类型为Dictionary

在每个域下面需设置三个属性:NSIncludesSubdomains、NSExceptionRequiresForwardSecrecy、NSExceptionAllowsInsecureHTTPLoads 类型均为Boolean,值分别为YES、NO、YES

细节提示:

在iOS9中如果使用到网络图片,也要注意网络图片时否是HTTP的,如果是也需要把图片的域设置

以下为各平台域:

新浪微博:weibo.com weibo.cn sina.com.cn

腾讯微博:qq.com

微信:qq.com

QQ/QZone:qq.com

3: 设置白名单URL scheme

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

如下内容:

LSApplicationQueriesSchemes类型NSArray

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

各平台OpenURL白名单说明:

新浪微博:sinaweibo,sinaweibohd,sinaweibosso,sinaweibohdsso,weibosdk,

weibosdk2.5 (后两个若导入新浪SDK则需要)

腾讯微博:TencentWeibo,tencentweiboSdkv2

微信:wechat,weixin

支付宝:alipay,alipayshare

QQ:mqqOpensdkSSoLogin,mqqopensdkapiV2,mqqopensdkapiV3,wtloginmqq2,mqq

mqqapi

QZONE:mqzoneopensdk,mqzoneopensdkapi,mqzoneopensdkapi19,mqzoneopensdkapiV2,mqqOpensdkSSoLogin,mqqopensdkapiV2,mqqopensdkapiV3,wtloginmqq2,mqqapi,mqqwpa,mqzone,

mqq (若同时使用QQ及QZONE,则直接添加QZONE的即可)

4:涉及到NSKeyedUnarchiver的操作,需要判断下内容是否为nil,如果为nil则不要进行NSKeyedUnarchiver的相关操作

5:Bitcode

未来Watch应用须包含Bi 听从的,iOS不强制,但Xcode7默认会开启Bitcode;

须在Build Setttings中关闭Bitcode

6:在iOS9下,新浪微博SDK里面使用的JSONKit在部分机型可能导致崩溃。崩溃信息如下图。

解决:暂时移除新浪微博SDK,等待新浪微博SDK的更新。

影响:移除新浪微博SDK后,除了依赖SDK实现的跳到客户端的分享和关注官网微博等失效。其他主要功能如分享、SSO、获取用户资料等不受影响。

7:XCode 7上传遇到ERROR ITMS-90535 Unexpected CFBundleExecutable Key. 的解决办法

点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: