sharesdk:ShareSDK 常见问题

QQ-分享报错901111,9001010等

由于QQ现在需要审核后才可以分享(之前分享不需要审核),所以此错误解决方法只需通过腾讯开放平台的审核即可,另外要检查注册好的应用的基本信息,包名、md5签名和Bundle id是不是填写正确,和项目里是一致的;

开放平台申请流程

各个开放平台,第三方平台,用ShareSDK分享也是需要申请,得到第三方的授权的,所以申请是必须的,申请流程您可以参考:链接

Facebook如何分享链接卡片的形式

fb分享链接,是根据链接中的配置,自动获取的,无法从客户端中设置代码或者接口来配置,只能通过前端的配置来操作,具体可以参考此处说明:Facebook显示卡片效果

Android端微信分享多图

微信分享多图会报如下错误;

微信从6.7.3开始限制了多图的分享,从微信6.7.3版本之后微信的朋友圈还是好友都无法分享多图的处理;

Android端微信一个key是否可以绑定多个包名

微信开放平台申请应用,一个key只能绑定一个包名,无法绑定多个包名,如果需要申请多渠道包名的key的话,需要申请多个key;

Android端微信没有回调

微信回调:这个WXEntryActivity.java 类 必须要在wxapi下,wxapi必须要在您的工程的包名package下。此处的包名必须与您的微信开放平台配置的包名一致才可以的;目前ShareSDK提供了Gradle集成方式,会自动根据您的包名生成回调配置,如果gradle集成的话可以不需要自己手动配置;

Android端ShareSDK跳到微信后,返回操作,取消分享,还是提示成功

您好,微信从6.7.2的版本之后修改了策略,是微信自己控制的,目前所有使用微信分享的都是这种效果;

Android端ShareSDK for 微信小程序

ShareSDK可以打开小程序吗?
可以的;

ShareSDK可以分享后小程序,从小程序还原回app吗?
可以的,且可以自己携带参数,具体详情见链接:链接

Android端微信回调与应用宝渠道回调冲突

微信规定回调类只能用WXEntryActivity。所以ShareSDK对其做了适配,如果应用宝冲突的话可以这样处理:链接

Android端新浪微博客户端分享报签名错误

检查没有微博状态是不是在草稿箱中,并且有SSO的相关提示,此类问题一般是是由于微博开放平台配置的包名和签名与您的app的不一致导致的,确保签名和包名配置的 一致即可;

Android端腾讯QQ与QZone分享没有回调,或者提示取消

离线集成的话,需要在AndroidManifest中配置QQ的回调配置;

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><<span style="color:#e8bf6a">activity</span> android:name=<span style="color:#6a8759">"cn.sharesdk.tencent.qq.ReceiveActivity"</span> android:launchMode=<span style="color:#6a8759">"2"</span> android:noHistory=<span style="color:#6a8759">"true"</span>> <<span style="color:#e8bf6a">intent-filter</span>> <<span style="color:#e8bf6a">data</span> android:scheme=<span style="color:#6a8759">"tencent100371282"</span> /> <<span style="color:#e8bf6a">action</span> android:name=<span style="color:#6a8759">"android.intent.action.VIEW"</span> /> <<span style="color:#e8bf6a">category</span> android:name=<span style="color:#6a8759">"android.intent.category.DEFAULT"</span> /> <<span style="color:#e8bf6a">category</span> android:name=<span style="color:#6a8759">"android.intent.category.BROWSABLE"</span> /> </<span style="color:#e8bf6a">intent-filter</span>></<span style="color:#e8bf6a">activity</span>></code></span></span>

其中,tencent后面的是QQ的AppId,需要保证此AppId必须与你配置的QQ的AppId保持一致,否则回调会异常; 如果是Gradle集成,无需自己手动配置上述内容,ShareSDK会自动根据您的配置生成内容,避免自己配置错误,如果gradle还是提示取消,可以删除build目录,重新加载即可;

Android端Google登录提示内部错误?

google开发者后台,需要配置签名信息,这个错误是由于您在google开发者后台中的签名配置与您的app的不一致导致的,注意google配置的格式是SHA1,不需要去掉冒号;

Android端Facebook想要分享成功,需要做哪些内容

Facebook,需要先申请应用,得到key,具体步骤查看链接:链接; 需要注意的是一些开关的打开,和回调地址的配置;配置完之后,将key配置到项目中,ShareSDK文档中有说明,配置完即可分享;

Android端ShareSDK的界面怎么删除不需要的平台

离线集成,可以直接删除Jar包的方式即可,ShareSDK开头的jar包,除了ShareSDK-core这个jar不能删除,其他的按需要的删除即可; Gradle集成的方式,是您在MobSDK下的ShareSDK里面加了什么平台,它就会有什么平台,具体参数可以参考Demo中的MobSDK.gradle文件,这里有全量的平台配置;

Android端SDK配置第三方key的方式

我认为第三方key的配置,配置在xml中,或者gradle中配置不安全,有其他的配置方式吗? A11.ShareSDK提供了三种配置方式,一是在ShareSDK后台配置,二是在客户端中代码配置,三是常规在xml中或者gradle文件中配置,SDK的访问优先级依次递减,也就是说如果您在ShareSDK后台配置了,就不会访问代码中和xml中的配置参数了; 具体配置查看文档:第三方平台初始化配置;

Android端是否可以在App中不同地方显示不同的平台

ShareSDK的OnekeyShare提供了接口,可以隐藏某个平台,oks.addHiddenPlatform(QQ.NAME);,比如这句就是隐藏QQ,想要隐藏其他的平台重复调用即可,留下您想留下的平台即可;

Android端OnekeyShare分享,不同平台分享不同内容

OnekeyShare的分享有提供接口,可以自定义某个平台分享的内容不同,具体详情见链接:链接

Android端ShareSDK的默认onekeyshare的回调如何修改

在oks.show之前添加代码,自己可以控制,注意oncomplete中是子线程,给提示的话需要传到UI线程中添加提示;

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:#cc7832">oks</span><span style="color:#e8bf6a">.setCallback</span>(new PlatformActionListener() { <span style="color:#629755">@Override</span> public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) { } <span style="color:#629755">@Override</span> public void onError(Platform platform, int i, Throwable throwable) { } <span style="color:#629755">@Override</span> public void onCancel(Platform platform, int i) { }});</code></span></span>

Android端OnekeyShare分享UI界面的自定义配置

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:#cc7832">private</span> void showShare(String platform) { final OnekeyShare oks = <span style="color:#cc7832">new</span> OnekeyShare(); <span style="color:grey">//指定分享的平台,如果为空,还是会调用九宫格的平台列表界面</span> <span style="color:#cc7832">if</span> (platform != null) { oks.setPlatform(platform); } <span style="color:grey">//去除分享正在后台的提示</span> oks.setDisappearShareToast(true); <span style="color:grey">//关闭一键分享默认ui</span> oks.setSilent(true); <span style="color:grey">// 隐藏QQ平台不显示(想隐藏什么平台,填写什么平台,可以多次调用)</span> oks.addHiddenPlatform(QQ.NAME); ............. <span style="color:grey">//启动分享</span> oks.show(MobSDK.getContext());}</code></span></span>

Android端OnekeyShare分享是否可以不要九宫格页面

可以的,在onekeyshare分享的代码中加上您先单独调用的参数即可;eg:oks.setPlatform(QQ.NAME);加上这句就是单独分享到QQ;

Android端微信分享失败

微信分享失败,提示toast:分享失败,或者进入onerror中,首先检查分享的方法参数是否足够,分享类型是否需要配置,如果这些配置没有问题,那么检查图片,可以先测试下单独分享文本,如果可以,肯定是图片因为的问题,首先检查下是否有存储权限,其次检查下可能是图片加载失败,可以换个图片链接再做测试;

Android端QQ如何才能返回unionid

这个首先需要去腾讯申请 Unionid接口权限申请流程:目前只支持同一个开发者号码下已审核的应用进行打通。如有需要,可以发邮件到connect@qq.com申请,提供应用类型、信息(AppId 和AppKey ),附上营业执照图片、网站备案截图(若有网站应用需要提供该项)即可。打通后同一个QQ登录不同APP ID应用后返回的unionid一致。具体打通事宜后续工作人员会通过邮件确认,请在1~5个工作日留意邮件,以邮件回复为准。 开发者反馈 — QQ互联WIKI 如上是腾讯申请的流程,收到回复确认后,回到ShareSDK授权,获取授权信息即可,里面就有unionid参数了;

Android端Facebook是否可以实现图文分享

Facebook目前不支持图文分享的形式,客户端只支持单独图片或者链接的方式分享; 但是,现在安卓可现在的版本有话题分享,可以构建成图片的效果,分享话题文字的方法是:sp.setHashtag("话题文字");,其他方法不变,可以实现图文的效果出来。

Android端line的web登录返回Authorize token is empty

错误原因:回调地址配置问题; 检查一下gradle集成代码中配置的回调地址配置和line开发者后台配置的是否一致;

Android端印象笔记如何从沙箱模式切换到生产模式

印象笔记切换服务器的方式,可以通过修改应用信息中的“HostType”来实现。 在中国大陆,印象笔记有两个服务器,一个是沙箱(sandbox),一个是生产服务器(china)。 一般你注册应用,它会先让你使用sandbox,当你完成测试以后,可以到支持 - 印象笔记开发者 上激活你的ConsumerKey,激活成功后,修改HostType为china就好了。 至于如果您申请的是国际版的印象笔记(Evernote),则其生产服务器类型为 “product”。

QQ分享后来自的显示(美的厨房)

问题描述:分享完QQ好友之后,发现显示的不是自己的应用名称;

问题原因:此处显示的应用名称,与图标是QQ根据配置的AppId和AppKey 自动展示的,不受SDK与用户代码控制,所以更换了自己的key则会自动改变成自己的配置; 由于用户使用的QQ的AppId和AppKey 是我们官方默认的,官方默认的AppId的应用名称就是美的厨房,或者是ShareSDK.xml里的ShareSDK的AppKey 用的是默认的也不是自己申请的; 解决问题:如果是ShareSDK用的 是默认的,到http://mob.com 去申请应用得到AppKey 替换即可,如果是QQ的AppId和AppKey 没有替换,请到http://open.qq.com 去申请应用得到AppId和AppKey 替换默认的配置就好的了(默认的配置是在assets下的sharesdk.xml文件中);

Android端Facebook分享、授权直接走的oncancle回调,或者在有客户端的情况下没有拉起客户端

错误原因:Facebook开发者后台对应的应用没有设置上线

检查一下Facebook开发者后台对应应用的上线开关有没有打开,如果没有打开,将开关打开就可以进行测试,如果暂时无法设置上线,可以通过Facebook开发者后台邀请测试用户,并使用测试用的Facebook账号进行测试;

Android端高版本机型上分享图片不显示,低版本机型分享正常

这个一般是没有使用ShareSDKFileProvider导致的,反编译apk检查一下Manifest,看一下是否有一下配置,如果没有手动在Manifest中添加上

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><provider android:<span style="color:#6a8759">name</span>=<span style="color:#6a8759">"cn.sharesdk.framework.utils.ShareSDKFileProvider"</span> android:<span style="color:#6a8759">authorities</span>=<span style="color:#6a8759">"<span style="color:#629755">${applicationId}</span>.cn.sharesdk.ShareSDKFileProvider"</span> android:<span style="color:#6a8759">exported</span>=<span style="color:#6a8759">"false"</span> android:<span style="color:#6a8759">grantUriPermissions</span>=<span style="color:#6a8759">"true"</span> /></code></span></span>

Android端微信海外主体应用问题-分享图片失败

目前微信海外主体的微信开发者张不支持分享图片,只支持网页、小程序类型的消息,具体详情见链接:海外主体的应用,分享时提示:由于当前分享的应用未获得分享权限? | 微信开放社区

Android端新浪微博网页端分享问题-提示不支持登录

目前新浪微博平台支持网页短信分享,但部分账号会报错“不支持登录”,是因为该微博账号已经开启了“多重验证”,但网页端不支持验证码验证,所以会报错“不支持登录”

Android端Facebook授权报错问题

Facebook授权报错:Tried accessing nonexisting field (devices) on node type (GamesServiceUser)

这个是因为Facebook游戏类的应用账号授权字段有改动,需要升级到ShareSDK3.9.3之后的版本,同时加上“ FaceBookAppType "game" ”配置,具体配置如下:

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:#ffc66d">Facebook</span> { <span style="color:#6a8759">appKey</span> <span style="color:#6a8759">"1412473428822331"</span> appSecret <span style="color:#6a8759">"a42f4f3f867dc947b9ed6020c2e93558"</span> callbackUri <span style="color:#6a8759">"https://www.baidu.com/"</span> shareByAppClient <span style="color:#6897bb">true</span> //游戏类账号配置 faceBookAppType <span style="color:#6a8759">"game"</span> }</code></span></span>

Android端QQ-分享报错25201

错误码25201是Android包名检查未通过,一般是由于包名配置错误或者是在腾讯开放平台上线,但没有与QQ开放平台关联导致;

QQ开放平台关联步骤:

登录QQ开放平台-应用管理–移动应用–关联腾讯开放平台–绑定了AppId和AppKey –然后查看–修改平台信息–Android平台,输入包名和签名可以了

Android端去除QUERY_ALL_PACKAGES权限

可以通过 exclude "android.permission.QUERY_ALL_PACKAGES" 代码去除

注意事项: 去除之后,需要手动配置一下对应的包名参考文档,不然分享功能无法正常使用,因为这个权限是Android高版本判断第三方平台是否安装用的 详情链接

iOS端微信无法分享到微信,由于应用Bundle id信息校验不通过

在微信开放平台上注册应用,需要把Bundle id填写的跟自己项目里的Bundle id一致,微信会动态检测这个Bundle id

iOS端微信无法分享到微信,由于当前分享的应用未获得分享权限

如果在微信开放平台上注册的是海外移动应用,是只能分享网页链接类型的,其他的类型不支持

iOS分享微信报错(由于不支持的分享类型,无法分享到微信)

首先得检查构造分享参数里传的参数,传的类型是不是微信支持的,其次如果注册的是海外的应用,微信目前只支持分享网页类型,其他的暂不支持!假如说要分享小程序,但是userName或者开发类型传的不对,就报这个错误

iOS端微信微信分享链接或者分享小程序报200300的错误信息的问题

需要检查下构造分享参数里传值问题,有可能是图片太大,或者是链接参数问题导致的问题,也可能是Universal_Links,存在本地多个应用host相同的问题导致,还有可能是有新旧SDK混用

iOS端微信点击跳转不了客户端,没有反应的问题

第一,检查是否有在plist文件里配置初始化我们SDK的AppKey等信息,第二检查是否在启动的时候初始化了微信平台,有可能注释掉了初始化,第三没有配置微信的URL Scheme和白名单,第四构造分享参数传值不满足条件,例如图片太大,第四,丢失了微信的js和connection文件

iOS端微信报40125,invalid AppSecret错误问题

首先需要检查下在客户端里plist文件里配置的初始化我们SDK的AppKey 是不是自己的,然后在我们的后台找到这个对应的AppKey的应用打开社会化平台设置的选项,找到微信好友,朋友圈,收藏看看状态是否勾选的开启,有没有配置AppId,AppSecret等信息和本地代码里是否配置的一致,如果开启的就要配置一致,没有开启可以不配置,配置的一致还有这个问题,那就本身微信初始化的AppSecret的问题,这个需要自己在微信上重新去获取AppSecret,有可能是注册的应用过期

iOS端微信登陆提示此公众号并没有这些scope的权限错误码:10005

微信注册应用没有开通登陆功能或者注册应用过期

iOS端微信有的时候出现,分享缩略图,自己分享的只有自己能看见图片,别人看不见的问题

经过测试发现有红包领取者两个词不能同时出现,红包中间加空格标点符号都不行。

iOS端微信登陆报错:code=40163,errmsg=“code been used,hints:[req_id:....]”,请求失败

这个错误是指code的被用了多次,有可能是用户自己在项目里不仅调用了我们的接口,还有使用原生的接口处理了某些东西引起,这个要具体检查代码,还有可能是在系统回调例如openurl里做了某些处理引起的,可以先把自己 一些处理注释掉,重新试下

iOS端微信支付不走回调问题

有可能是系统方法里没有实现微信的接口,例如

iOS端添加微信原生支付和我们SDK一起使用需要注意的地方

i.不需要自己去微信上下载他们原生的微信SDK,只需要用我们SDK里的微信SDK就可以,我们下载SDK的时候可以勾选带支付的微信SDK,还是不带支付的微信上SDK下载,一个项目里只能有一个微信SDK

ii.自己根据原生支付接口调用,需要加微信原生的初始化

iii.在处理回调的时候,要自己做好判断处理,如果4.2.0版本之后,不走微信的回调的话,要记得加以下方法处理

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:grey">/** 可以获取被sharesdk截取的微信sdk回调 @param operation 设置的回调block */</span>+ (<span style="color:#cc7832">void</span>)setWXCallbackOperation:(<span style="color:#cc7832">void</span>(^)(<span style="color:#cc7832">id</span> req,<span style="color:#cc7832">id</span> resp))operation;</code></span></span>

示例代码

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code class="language-objective-c"><span style="color:#bbb529">#import <WechatConnector/WechatConnector.h></span>[WeChatConnector setWXCallbackOperation:^(<span style="color:#cc7832">id</span> req, <span style="color:#cc7832">id</span> resp) { NSLog(<span style="color:#6a8759">@"%@"</span>,resp);}];-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,<span style="color:#cc7832">id</span>> *)options{ [WXApi handleOpenURL:url delegate:<span style="color:#cc7832">self</span>]; <span style="color:#cc7832">return</span> <span style="color:#6897bb">YES</span>;}</code></span></span>

iOS端QQ分享提示当前QQ版本太低,需要更新至新版本才可以支持

丢失了mqqopensdkapiV4这个白名单

iOS端微信,QQ分享到客户端,但是只是打开了客户端,并没有跳转到好友列表界面

需要检查下配置的URLScheme,白名单以及Universal Links,像QQ跳转到客户端,只是打开了App,可能是白名单漏写了,也可能是构造分享参数里的参数问题;微信现在多了Universal Links,除了URL Scheme,白名单,还有Universal Links,没有配置或者域名过期了都可能出现这种情况,还有分享出去了,但是跳不回来App;

iOS端企业微信分享报错,不支持的SDK调用,应用程序没有调用此API的权限

需要转到相应企业下才能分享授权的,在企业微信上,我->设置->切换企业这里转下,或者消息->其他企业 都能切换企业,应用(使用企业A的AppKey ) 分享或授权时 企业微信当前处于企业A才能正常分享或授权,否则会出现权限问题,企业微信只能对应的企业去分享

iOS端APICloud里微信分享报错:registerApp:universalLink

除了白名单以及配置Universal link,需要检查下config.xml里是不是有querySchemes这个参数设置,设置了这个,需要添加weixinULAPI ,那么res里的info.plist里的白名单列表,不会拷贝到 工程里了,会无效,这个应该是ApiCloud本身的机制导致的

iOS端微信显示未验证应用,QQ显示未识别应用等

可以参考下这个文档:iOS应用出现未验证应用的问题排查 首先确定ShareSDK更新到4.3.3或者以上版本,因为从这个版本开始我们有同步更新微信的SDK到1.8.6.1或者以上版本,其次确定Universal links是否配置正确,如果这2个都没问题的话,需要等微信那边统计分享失败率下降,到时候会自动去掉的

QQ的请参考这个: QQ互联将于2020年7月6日进行universal link的校验工作,请开发者关注! — QQ互联WIKI 首先确定ShareSDK更新到4.3.3或者以上版本,因为从这个版本开始我们有同步更新QQ的SDK到3.3.7或者以上版本,其次确定Universal links是否配置正确,另外要检查下这个白名单mqqopensdkminiapp是否添加了,更新到4.3.14版本,只qq分享这个白名单可以不用添加,也不会发生这个问题,还有可能是pod引入的我们的精简版的SDK,去掉了qq的SDK

iOS端微信分享跳转到客户端,提示Universal links校验不正确,以及分享一直跳转到正在链接的界面

需要检查

(1)微信上配置的Universal links是否与微信初始化里的Universal links一致:

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code class="language-objective-c">[platformsRegister <span style="color:#6a8759">setupWeChatWithAppId:</span>@<span style="color:#6a8759">"wx617c77c82218ea2c"</span> <span style="color:#6a8759">appSecret:</span>@<span style="color:#6a8759">"c7253e5289986cf4c4c74d1ccc185fb1"</span> <span style="color:#6a8759">universalLink:</span>@<span style="color:#6a8759">"https://70imc.share2dlink.com/"</span>];</code></span></span>

(2)项目里是否配置了Universal links

(3)如果是使用我们后台生成的Universal links,需要检查下我们后台填写的Team id和Bundle id是否和自己里使用的证书的Team id和Bundle id一致,Team id可以在苹果的开发者网站内找到(注意先检查下在项目里plist文件里配置的初始化我们SDK的AppKey和AppSecret是哪一个,在去我们后台找到对应的AppKey下的应用查看,同理微信初始化里用的什么AppId在微信上要找到对应的AppId下的应用配置查看,不要找错应用

查看Team id等信息

(4)查看后台有没有配置平台的初始化信息,如下图:

找到这个选项里的微信,朋友圈和收藏,在点击设置,打开:

看下这个状态开关是否打开的,如果是打开的就必须要配置下AppId,AppSecret和Universal links,和本地代码里配置一致,如果是关闭的就可以不配置。

(5)之前有一个客户,项目经过版本检查,发现由于当前版本与上个版本核对后发现info.plist文件中多一配置项,默认为YES,导致分享后打开第三方应用后当前应用关闭所以产生“由于应用安全校验不通过,无法完成分享”。将其修改为NO即可解决。否则无法进入appdelegate中的continueUserActivity方法。

iOS端分享QQ,跳转到QQ之后,网页报错问题

检查了QQ的SDK版本号,还有配置的Universal links,还要检查下qq的客户端的版本,版本太低也不行,需要卸载qq客户端,重新安装才行,还有需要检查下用户是否在系统回调里做了处理

iOS端QQ,QQ空间分享图片,但是看不到图片的问题

检查白名单配置是否完整,有可能是这个配置问题

iOS端更新到4.4.0版本的SDK,QQ会报如下错误 Cannot find protocol declaration for 'QQApiInterfaceDelegate'; did you mean 'TencentApiInterfaceDelegate'

最新的SDK里同步更新了QQ的SDK,这个问题是之前旧版本的QQ SDK没有删除干净,要删除干净,另外之前QQ的头文件引用都要删除掉,使用

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:#bbb529">#import <TencentOpenAPI/TencentOpenApiUmbrellaHeader.h></span></code></span></span>

这个才行,因为新版本QQSDK适配了swift

iOS端[TencentOAuth initWithAppId:enableUniveralLink:universalLink:delegate:]: unrecognized selector sent to instance 0x2824acc30

{"status":2,"platform":24,"reqID":1,"res":{"error_code":200303},"action":9}

因为QQ SDK版本低了导致

iOS端加入AuthenticationServices在低系统会崩溃的问题

dyld: Library not loaded: /System/Library/Frameworks/AuthenticationServices.framework/AuthenticationServices Referenced from: /var/containers/Bundle/Application/56CA4BD6-3EE3-4088-98C6-CB3A9A60C083/chongfa.app/chongfa Reason: image not found

需要把库设置为Optional可选;低版本不支持这个依赖库;

iOS端error_code=200101, description=参数错误:text}

构造分享参数可能单独定制某个平台的接口,或者平台类型传的是总的类型

iOS端每个平台报error_code=200100, description=Platform configuration error:Connector is not exsit}错误问题

报这种问题是由于丢失了平台的Connection的文件,如果是pod集成,可能没有写对应的平台的命令导致

iOS端分享报error_code=200100, description=平台配置错误:appid is nil这个错误

第一,有可能是使用了新版本,但是初始化这些还是旧版本的初始化导致,第二是没有在plist文件里正确配置初始化我们SDK的AppKey等信息,第三,是可能在我们的后台打开了平台配置的状态开关,但是没有配置AppId

iOS端微博报错

Error Domain=ShareSDKErrorDomain Code=200301 "(null)" UserInfo={error_code=200301, statusCode=-3}

Error Domain=ShareSDKErrorDomain Code=200301 "(null)" UserInfo={error_code=200301, statusCode=-5}

Error Domain=ShareSDKErrorDomain Code=200301 "(null)" UserInfo={error_code=200301, statusCode=-8}
要检查下ATS配置了没有,已经在微博上注册的bundle id是否跟自己项目里的Bundle id填写一致,另外还有在微博上注册的应用有没有提交给微博那边审核

iOS端unity中Facebook报错

有可能是SDK更新到最新版本,但是Facebook初始化还是用的旧版本的初始化,旧版本的初始化有设置这个authtype的,新的初始化已经没有了这个参数。可以检查下初始化

iOS端Facebook报错error_code:200302,error_msg:"Failed to authenticate the application because of app name mismatch.Please check the application name configured by the dialog."

需要检查Facebook初始化displayname填写是否和在Facebook上注册的应用名称一致,最好是英文名,其次检查这个开关是否打开:

iOS端Facebook分享链接模式没有任何内容显示的问题

需要检查下自己传的链接,可能是传的链接有问题

iOS端Facebook分享是否可以不传AppSecret

Facebook分享可以不传AppSecret,但是不能传nil或者null,可以传任意大于0的字符串

iOS端Facebook分享成功了,但是回调走的失败,报未知状态的错误问题

这个问题是由于Facebook本身没有返回正确的回调状态导致的问题,目前解决这个问题的办法,是在分享之前加下授权的方法,先授权在分享

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code>[ShareSDK authorize:SSDKPlatformTypeFacebook settings:nil <span style="color:#cc7832">on</span>StateChanged:^(SSDKResponseState <span style="color:#cc7832">state</span>, SSDKUser *<span style="color:#cc7832">user</span>, NSError *error) {if (<span style="color:#cc7832">state</span>== SSDKResponseStateSuccess) {NSLog(@<span style="color:#6a8759">"%@"</span>,<span style="color:#cc7832">user</span>.rawData);}else{NSLog(@<span style="color:#6a8759">"%@"</span>,error);}}];</code></span></span>

iOS端Facebook报错:200302:"(#100) Tried accessing nonexisting field (security_settings) on node type (User)"

新注册的Facebook用户用的我们的老版本的SDK可能会报这个错误,只需要更新SDK就可以

iOS端Facebook报错:[FBSDKBasicUtility dictionary:setObject:forKey:]

项目里有2个Facebook的SDK导致

iOS端Facebook登陆报错

是因为使用的 pod 'mob_sharesdk/ShareSDKPlatforms/Facebook_Lite',这个命令,没有导入完整的Facebook的SDK导致的错误

iOS端Facebook报错:ShareSDKErrorDomain Code=200000 "(null)" UserInfo{com.facebook.sdk:FBSDKErrorArgumentNameKey=videoURL, com.facebook.sdk:FBSDKErrorDeveloperMessageKey=Must

构造分享参数里的type可能选择了Auto类型,然后自动把url视作视频来分享,所以导致这个报错,如果要分享链接要选择webpage类型

iOS端Twitter分享报错问题

Error Domain=ShareSDKErrorDomain Code=200302 "(null)" UserInfo={error_code=200302, user_data={ error = "Read-only application cannot POST."; request = "/1.1/statuses/update.json"; }}

首先把权限改为第三个

如果还不行,可以重置这些:

iOS端SnapChat登陆报错问题

NSInvalidArgumentException', reason: '-[NSTaggedPointerString containsObject:]: unrecognized selector sent to instance 0xa43c868d15dff13d

LSApplicationQueriesSchemes设置成String类型了。所以SDK将它读取成String时,解析失败,报错了。改为Array。

iOS端Kakao Error Domain=KLKErrorDomain Code=11 ""templateId" is nil." UserInfo={NSLocalizedFailureReason="templateId" is nil

kakao需要设置单独定制接口,设置模板id才行

iOS端No visible @interface for 'SSDKRegister' declares the selector 'setupWeChatWithAppId:appSecret:'

找不到接口,头文件导入问题或者SDK导入问题,还有可能是用户自己项目里有自定义相同名称的宏导致的

iOS端LinkedIn问题

LinkedIn分享visibility传值,不能传connection-only,分享text和链接可以传PUBLIC以及CONNECTIONS,也可以传nil

iOS端unity里如何删除掉不要的平台的库文件

如果在unity里只删除掉原生SDK里的微信SDK,生成XCode会找不到ShareSDK.h文件,整个SDK都不会生成在XCode里,这个不仅要删除掉微信SDK,还需要把其他文件里的相应的平台的库文件给删除掉才行,如果只是删除掉原生SDK,需要把pltpds文件里的folders字段删除掉

iOS端Youtube

Youtube报错,youtube里面的appsSecret不能传nil,可以传空或者其他随便的值

iOS端Swift版本中分享菜单要设置某平台不弹出编辑界面的问题,设置无效的问题

是因为平台类型写的不对导致,需要这样写SSDKPlatformType.typeWechat.rawValue;后面一定要加rawValue参数

iOS端unity中分享报错error_code=200101, description=Parameter error:text

是因为构造分享参数里传值有问题

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:#cc7832">content</span><span style="color:#e8bf6a">.SetContentType</span>(<span style="color:#cc7832">ContentType</span><span style="color:#e8bf6a">.Image</span>);</code></span></span>

这个参数写错导致的问题,应该这样写content.SetShareType(ContentType.Image);

iOS端如下图

需要设置系统最低支持iOS8.0

iOS端swift中报错: -[__SwiftValue iconNormal]: unrecognized selector sent to instance 0x170244a10

在swift中传平台类型需要加 rawValue,例如SSDKPlatformType.typeSinaWeibo.rawValue

iOS端-[WBImageObject setDelegate:]: unrecognized selector sent to instance 0x282b44860

这个错误是因为项目里不仅有我们SDK的微博SDK,还自己下载了早期的微博SDK,没有删除干净,或者是其他第三方的里面有微博SDK,需要都删除掉,只保留我们SDK里的微博SDK就可以

iOS端unity的默认的AppKey都改为自己的了,但是转成Xcode的之后,还是显示我们默认的AppKey和配置

用户自己写了一个类,加了自己自定义的东西,例如:

这个自定义的需要把这个标识换成[PostProcessBuildAttribute(0)]这个才行

iOS端unity中在使用我们的组件下如何在配置自己的URL Scheme,才会不使我们的配置覆盖自己的配置

unity中自己项目里配置URL Scheme,如何做?用户自己写了一个类,加自己的URL Scheme,那么在自己的类里面引入[PostProcessBuild(数字)]或者[PostProcessBuildAttribute(数字)]这个属性标识 就行,要与我们文件里的[PostProcessBuildAttribute(88)] 这个数字不同。也可以在我们的文件里加他自己的URL Scheme,可以在自己需要的社交平台的pltpds文件里面,添加自己需要设置的scheme

iOS端NSInvalidArgumentException', reason: '-[__NSArrayM enqueue:]: unrecognized selector sent to instance 0x2833b7450'

需要在项目的Build Settings中的Other Linker Flags添加”-ObjC”

iOS端flutter中如何自定义分享菜单,显示需要的平台

可以在弹出分享菜单的接口里的第一个参数里传下分享平台类型

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code>SharesdkPlugin.showMenu(null, [ShareSDKPlatforms.qq,ShareSDKPlatforms.sina,ShareSDKPlatforms.wechatSeries], params, (SSDKResponseState <span style="color:#cc7832">state</span>, ShareSDKPlatform platform, dynamic <span style="color:#cc7832">user</span>Data, dynamic contentEntity, SSDKError error) { showAlert(<span style="color:#cc7832">state</span>, error.rawData, context); });</code></span></span>

iOS端error_code=200201, description=文件未加载 :sharesdk.js

这个问题是由于unity转成XCode,自己手动把unity里的原生SDK导入到XCode里导致的,手动导入的话,需要自己在官网下载SDK,或者是改后缀

iOS端微信分享报如下错误:error_code=200302, error_message=The request timed out., description=Request failed

网络问题,设置了代理;

iOS端苹果登陆报错问题

Error Domain=ShareSDKErrorDomain Code=200100 "(null)" UserInfo={error_code=200100, description=Platform configuration error:create ASAuthorizationAppleIDProvider request Fail!

需要加AuthenticationServices.framework依赖库

要检查是不是企业证书测试,不支持企业证书;

iOS端用户自己创建私有库,私有库里依赖我们的SDK,然后整个项目里在pod用我们的SDK来使用进行分享,会导致分享不了,是什么原因

需要检查下自己创建的私有库framework

要设置成static类型的,如果把Framework设置为dynamic类型,会不能使用,自制的framework一般是静态的,系统的framework是动态的,用户自己制作动态库上架会有问题 ,具体的可以百度

iOS端闭环分享不走回调

第一检查前端网页里是否有加targetAction_iOS参数;第二检查代理方法是否有在启动的时候调用到[ShareSDK setRestoreSceneDelegate:self];;第三闭环分享的库文件有没有导入

iOS端使用我们的分享菜单接口,点击任意按钮都是走的取消的问题

要检查触摸事件是否重写或者扩展了,例如

[[self nextResponder] touchesBegan:touches withEvent:event]; 相当于将事件交给了上层也就是分享视图的黑色区域 view,需要把里面的方法注释掉。还有写扩展了,把扩展删除掉也可以。

iOS端如何查看ShareSDK版本大小

可以在项目根目录里找到ShareSDK.framework,看下plist文件,里面有版本号

iOS端如何查看QQ,微信,微博等SDK的版本号

1.微信:

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code>#<span style="color:#cc7832">import</span> <span style="color:#6a8759">"WXApi.h"</span> NSLog(@<span style="color:#6a8759">"微信==%@"</span>,[WXApi getApiVersion]);</code></span></span>

2.QQ:

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code>#import <TencentOpenAPI/TencentOAuth.h> NSLog(@<span style="color:#6a8759">"QQ==%@"</span>,[TencentOAuth sdkVersion]);</code></span></span>

3.微博:

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code>#<span style="color:#cc7832">import</span> <span style="color:#6a8759">"WeiboSDK.h"</span> NSLog(@<span style="color:#6a8759">"新浪微博==%@"</span>,[WeiboSDK getSDKVersion]);</code></span></span>

iOS端直接导入

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:#bbb529">#import <ShareSDK/SSDKUser.h></span></code></span></span>

报错:

不能直接就引入这个

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:#bbb529">#import <ShareSDK/SSDKUser.h></span></code></span></span>

而是需要引入这个

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:#bbb529">#import <ShareSDK/ShareSDK.h></span></code></span></span>

很多东西都是互相依赖的,引入这个就可以

iOS端APICloud中的平台配置key主要读取哪里的

config.xml以及key.xml都可以配置平台的AppKey,config.xml中的平台AppKey配置级别比key.xml里的低,iOS可以支持config.xml和key.xml任意一个,config.xml比较不安全,如果把app下载下来解压包,能获取到config.xml文件信息,key.xml比较安全,最终整个文件都是加密过的

iOS端邮件分享,分享成功已经走成功回调里,但是没有进去邮箱没有看到分享的东西

第一可能是在草稿箱里,第二邮箱退出,重新在登陆看下

iOS端抖音报200500: 权限拒绝

抖音需要相册权限,即使是网络图片,也是先把网络图片下载到相册,然后调用的抖音SDK接口进行分享,还有可能是在抖音上没有开通权限,还要点击后面的配额申请配额:

iOS端Flutter分享本地图片到QQ,报错code:200303

是因为iOS中qq分享图片没有传title

iOS端CocoPods中swift集成更新我们SDK到4.x版本可能会发生以下错误

4.4.1版本里引用的QQ SDK是3.5.3版本,在桥接文件中引入

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:#bbb529">#import <TencentOpenAPI/TencentOpenApiUmbrellaHeader.h></span></code></span></span>

会发生以下错误

找到如下图文件:

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:grey">//修改一下module.modulemap这个文件</span><span style="color:grey">//文件修改后的内容:</span>framework module TencentOpenAPI { <span style="color:#cc7832">header</span> <span style="color:#6a8759">"QQApiInterface.h"</span> <span style="color:#cc7832">header</span> <span style="color:#6a8759">"QQApiInterfaceObject.h"</span> <span style="color:#cc7832">header</span> <span style="color:#6a8759">"TencentOAuth.h"</span> <span style="color:#cc7832">header</span> <span style="color:#6a8759">"TencentOpenApiUmbrellaHeader.h"</span> <span style="color:#cc7832">header</span> <span style="color:#6a8759">"sdkdef.h"</span> export *}</code></span></span>

iOS端TikTok分享报错:200101,description=ShareSDK_pleaseSelectMoreImage

这是因为TikTok只支持分享多图,多视频,不能分享单图,单视频等

iOS端TikTok分享报错:200102,description=不支持的contentType

图片分享的时候,他可能传了url的值,设置了webpage的类型,传nil就可以

iOS端google登陆报错问题

Domain=ShareSDKErrorDomain Code=200302 "(null)" UserInfo={error_code=200302, user_data={ error = "invalid_client"; "error_description" = Unauthorized; }}

检查google初始化信息,里面的clientSecret需要传空

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code>[platformsRegister <span style="color:#6a8759">setupGooglePlusByClientID:</span>@<span style="color:#6a8759">"281551249907-b11nkc278fc3l07afe21glng0ogc0jqj.apps.googleusercontent.com"</span> <span style="color:#6a8759">clientSecret:</span>@<span style="color:#6a8759">""</span> <span style="color:#6a8759">redirectUrl:</span>@<span style="color:#6a8759">"http://localhost"</span>];</code></span></span>

iOS端QQ报错问题

在项目里引用QQ的头文件,之前有引用过的都要删除,需要引入如下头文件

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:#bbb529">#import <TencentOpenAPI/TencentOpenApiUmbrellaHeader.h></span></code></span></span>

iOS端QQ登陆报错

这个错误除了检查平台初始化接口是否调用到,还需要检查在我们后台是否把第三方配置的状态开关打开了,但是信息没有配置;除了这些还需要检查URL Scheme和白名单是否配置正常,白名单配置如下:

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><string>mqqopensdkminiapp</string><string>mqzone</string><string>mqqopensdklaunchminiapp</string><string>mqqopensdkapiV2</string><string>tim</string><string>mqqapi</string><string>mqq</string><string>mqqOpensdkSSoLogin</string></code></span></span>

iOS端Kakao登陆的流程

kakao现在分享是需要talk的授权,如果talk没有安装的话,会直接报错talk未安装,不会在弹网页授权的。之前没有安装talk ,story,是可以弹出网页,但是即使弹出了talk的网页授权,在手机号登陆的情况下,网页授权还是需要用户在talk app中点击个同意的操作进行二次验证才能通过授权,所以我们这块逻辑改掉了,只要没有安装talk,就不在弹出网页授权,提示需要安装talk。后来因为用户反馈,在邮箱登陆下,是可以直接弹出网页授权分享的。后来我们就去掉这个报错talk未安装的提示了。

iOS端FacebookMessage和快手分享注意

Facebook是可以用统一构造分享参数的,message和快手的平台只能用定制接口

iOS端unity中如何判断是否安装第三方平台

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code>bool IsClientInstalledWechat = ssdk.IsClientValid (PlatformType.WeChat); <span style="color:#cc7832">if</span>(IsClientInstalledWechat == <span style="color:#6897bb">true</span>){print (<span style="color:#6a8759">"wechat IS installed !"</span>);}<span style="color:#cc7832">else</span> <span style="color:#cc7832">if</span> (IsClientInstalledWechat == <span style="color:#6897bb">false</span>){print (<span style="color:#6a8759">"wechat NOT installed !"</span>);}</code></span></span>

iOS端企业微信报错:errCode=6, error_code=200301, errStr=Invalid filedata

分享网络图片会报这个,weowork不支持图片是网络地址,但是通过这种转换share会对图片进行一次下载到本地在传输path

如果是本地图片,可以试试如下

或者现象是跳转到企业微信之后又跳转回来,也有可能是必要的参数没有传,可以检查下,像要分享单独的图片,title必须要传。

iOS端微信好友分享链接,从苹果端分享出去,在从安卓端无法打开分享的链接问题

检查构造分享参数这块,其中type类型需要选择webpage类型,不能选择auto类型

iOS上XCode14用Pod集成兼容办法包含自动化打包

最近在Xcode14上会出现这个错误: Pods/Pods.xcodeproj Signing for "mob_sharesdk-ShareSDK" requires a development team. Select a development team in the Signing & Capabilities editor.

第一种解决办法:

如下图所示

第二种解决办法:

可以解决自动化打包问题,可以在Podfile中添加如下脚本代码:

<span style="background-color:#42475a"><span style="color:#a9b7c6"><code>target <span style="color:#6a8759">'TXcode14'</span> <span style="color:#cc7832">do</span>use_frameworks!pod <span style="color:#6a8759">'mob_sharesdk'</span><span style="color:grey">#添加如下脚本即可</span>post_install <span style="color:#cc7832">do</span> |installer| installer.pods_project.targets.each <span style="color:#cc7832">do</span> |target| <span style="color:#cc7832">if</span> target.respond_to?(<span style="color:#6897bb">:product_type</span>) <span style="color:#cc7832">and</span> target.product_type == <span style="color:#6a8759">"com.apple.product-type.bundle"</span> target.build_configurations.each <span style="color:#cc7832">do</span> |config| config.build_settings[<span style="color:#6a8759">'CODE_SIGNING_ALLOWED'</span>] = <span style="color:#6a8759">'NO'</span> <span style="color:#cc7832">end</span> <span style="color:#cc7832">end</span> <span style="color:#cc7832">end</span><span style="color:#cc7832">end</span><span style="color:#cc7832">end</span></code></span></span>

iOS Google授权报错如下

Error Domain=ShareSDKErrorDomain Code=200300 "(null)" UserInfo={SEL=authStateByPresentingAuthorizationRequest:presentingViewController:callback:, error_code=200300, NSUnderlyingError=0x280c21ce0 {Error Domain=com.apple.AuthenticationServices.WebAuthenticationSession Code=2 "Cannot start ASWebAuthenticationSession without providing presentation context. Set presentationContextProvider before calling -start." UserInfo={NSDebugDescription=Cannot start ASWebAuthenticat

此报错问题,可能为页面跳转方式引起,modalPresentationStyle的问题导致,选择none类型即可,另外iOS目前会直接返回邮箱,打印[user credential].rowdata使用即可.。如需通过token置换用户信息,需要通过user.credential.token 获取到accessToken,再通过Google的 v2/userinfo接口获取,参考下图

相关推荐

相关文章