1、大部分社交平台接口不支持https协议。
问题描述:在iOS9下,系统默认会拦截对http协议接口的访问,因此无法获取http协议接口的数据。对ShareSDK来说,具体表现可能是,无法授权、分享、获取用户信息等。
解决:
(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的哦,如果是,也要把图片的域设置哦!
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 | ||
| 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 | ||
| fbauth2 | ||
| 无需配置 | ||
| pocket-oauth-v1 | ||
| pinit | ||
| | ||
| | ||
Line | line | ||
KakaoTalk | kakaolink | ||
KaokaoStory | storylink | ||
| 无需配置 | ||
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” 这是系统打印的信息,目前是无法阻止其打印,即无法消除的 | |||
3.上述白名单,是技术人员通过不断的测试收集整理所得,如果各位开发者朋友发现上表格有所遗漏,请根据系统信息添加相关白名单即可。 |
系统的打印信息如图所示:
添加完后,系统是依然会打印的,不过error会变成null: