适配iOS 9系统
2015-12-15 12:02
603 查看
还可能造成我们的编辑界面里传http之类的网络图片的时候,我们的编辑界面不会显示图片截图,解决的办法或者全面关闭https,允许使用http请求;或者把图片的域添加;又或者选择使用https的图片
解决方案(以下方法2选1):
(1)、暂时退回到http协议。
具体方法:
在项目的info.plist中添加一个Key:NSAppTransportSecurity,类型为字典类型。
然后给它添加一个Key:NSAllowsArbitraryLoads,类型为Boolean类型,值为YES;
(2)、设置域。可以简单理解成,把不支持https协议的接口设置成http的接口。
具体方法:
1)、在项目的info.plist中添加一个Key:NSAppTransportSecurity,类型为字典类型。
2)、然后给它添加一个NSExceptionDomains,类型为字典类型;
3)、把需要的支持的域添加給NSExceptionDomains。其中域作为Key,类型为字典类型。
4)、每个域下面需要设置3个属性:NSIncludesSubdomains、NSExceptionRequiresForwardSecrecy、NSExceptionAllowsInsecureHTTPLoads。
均为Boolean类型,值分别为YES、NO、YES。
细节提示:在iOS9中如果使用到网络图片,也要注意网络图片是否是HTTP的哦,如果是,也要把图片的域设置哦!
各平台设置域 | |||
新浪微博 | weibo.com weibo.cn sina.com.cn | ||
腾讯微博 | qq.com | ||
微信 | qq.com | ||
QQ/QZone | qq.com | ||
易信 | 无需配置 | ||
豆瓣 | 无需配置 | ||
人人 | renren.com | ||
开心网 | kaixin001.com kaixin001.com.cn | ||
有道 | youdao.com | ||
Facebook | facebook.com | fbcdn.net | akamaihd.net |
Twitter | twitter.com | ||
Google+ | 无需配置 | ||
Instagram | instagram.com instagramstatic-a.akamaihd.net | ||
Tumblr | tumblr.com | ||
Instapaper | instapaper.com | ||
Pinterest | 无需配置 | ||
明道 | 无需配置 | ||
Evernote印象笔记 | 无需配置 | ||
VK | 无需配置 | ||
pocket | 无需配置 | ||
LinkedIn | 无需配置 | ||
Dropbox | 无需配置 | ||
Flickr | 无需配置 |
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)、然后给它添加一个需要支持的项目,类型为字符串类型;
各平台OpenURL白名单说明 | |
新浪微博 | sinaweibo, sinaweibohd, sinaweibosso, sinaweibohdsso, weibosdk, weibosdk2.5 [后两个若导入新浪SDK则需要] |
腾讯微博 | TencentWeibo, tencentweiboSdkv2 [控制台会提示这两个,但是腾讯微博SDK已经弃用,可以忽略不配置] |
豆瓣 | 无需配置 |
开心网 | 无需配置 |
微信 | wechat, weixin |
易信 | yixin, yixinopenapi |
支付宝 | alipay, alipayshare |
QQ | mqqOpensdkSSoLogin, mqqopensdkapiV2, mqqopensdkapiV3, wtloginmqq2, mqq, mqqapi |
QZONE | mqzoneopensdk, mqzoneopensdkapi, mqzoneopensdkapi19, mqzoneopensdkapiV2, mqqOpensdkSSoLogin, mqqopensdkapiV2, mqqopensdkapiV3, wtloginmqq2, mqqapi, mqqwpa, mqzone, mqq [注:若同时使用QQ和QZONE,则直接添加本格即可] |
Google+ | googlechrome, googlechrome-x-callback, hasgplus4, com.google.gppconsent, com.google.gppconsent.2.2.0, com.google.gppconsent.2.3.0, com.google.gppconsent.2.4.0, com.google.gppconsent.2.4.1 |
人人网 | renrenapi, renrenios, renreniphone, renren, 以及在使用人人SDK时所需配置的URL Scheme,例如:rm226427com.mob.demoShareSDK |
Facebook | fbauth2 |
Twitter | 无需配置 |
Pocket | pocket-oauth-v1 |
Pinterest | pinit |
Instagram | instagram |
WhatsApp | whatsapp |
Line | line |
KakaoTalk | kakaolink |
KaokaoStory | storylink |
LinkedIn | 无需配置 |
Tumblr | 无需配置 |
非平台类,如短信,复制,邮件等 | 无需配置 |
必看注意: | |
1.在iOS9中,如果没有添加上述白名单,系统会打印类似如下提示: .-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “This app is not allowed to query for scheme sinaweibohdsso”(如下图) 如没有添加相关白名单,有可能导致分享失败,例如不会跳转微信,不会跳转QQ等。 | |
2.添加完上述所需的名单,系统依然会打印类似信息: .-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “null” 这是系统打印的信息,目前是无法阻止其打印,即无法消除的 |
如果没有设置白名单的话,系统的打印信息如图所示:
添加完后,系统是依然会打印的,不过error会变成null:
4、其他:
在iOS9下,新浪微博SDK里面使用的JSONKit在部分机型可能导致崩溃。崩溃信息如下图。解决:暂时移除新浪微博SDK,等待新浪微博SDK的更新。
影响:移除新浪微博SDK后,除了依赖SDK实现的跳到客户端的分享和关注官网微博等失效。其他主要功能如分享、SSO、获取用户资料等不受影响。
相关文章推荐
- iOS中Bitcode的介绍及配置
- iOS xcode实用插件
- ios7自定义返回按钮后,右滑返回功能失效解决方法
- ios 自动生成 @2X 和 @3X 图 Xcode插件 RTImageAssets
- iOS开发 - 登陆post请求遇到的问题
- [iOS]iOS开发者账号申请与注册流程
- iOS CocoaPods安装和使用图解
- iOS QQ分享(最新2015.12.25)
- [Xcode 7.2]Xcode菜单栏之你不知道的那点事
- iOS开发之JSON和XML
- iOS--NSThread
- iOS-NSUserDefaults
- iOS tableView 改变头视图和脚视图的颜色
- IOS 开源框架:SDWebImage
- IOS中使用像素位图(CGImageRef)对图片进行处理
- iOS 返回父视图之后如何刷新页面
- iOS 学习日志 :开发中常用的注释方法以及代码块
- [iOS]iOS的字号转换问题
- iOS 开发获取当前时间 NSDate
- 定时器详述