ShareSDK相关

# ShareSDK、QQ、微信分享的后台ID管理平台 ## ShareSDK [ShareSDK](https://www.mob.com/) 账号:bd@baoyis.com 密码:(名字首字母大写)2016! >i ShareSDK的AppKey、AppSecret ## 微信 [微信开放平台](https://open.weixin.qq.com/) 账号:3433163440@qq.com 密码:(名字首字母大写)2016! >i 每个包名都需要申请一个对应的移动应用,ios端的universal link也许要在此配置 >w 每个包需要配置签名(有些渠道需要二次签名:应用宝、小米、百度、新百度、B站、搜狗,目前前三个渠道有分享,但只有小米的签名变了) ## QQ [QQ开放平台](https://connect.qq.com/index.html) 需要QQ账号手机确认登录 账号:3433163440 >i 每个id最多配置6个Android平台包名、一个ios,ios端的universal link也许要在此配置 [腾讯开放平台](https://open.qq.com/login) ## 分享的渠道 包含qq、微信的渠道 官网 TapTap 好游快报 应用宝 华为 苹果 4399 UC 百度 360 Oppo 未分享的渠道: 金立 B站 酷派 新百度 联想 小米 魅族 三星 搜狗 Vivo 豌豆荚 # ShareSDK ## 一、 更新所需的包 [https://github.com/MobClub/New-Unity-For-ShareSDK](https://github.com/MobClub/New-Unity-For-ShareSDK) ![image.png](https://cos.easydoc.net/86351604/files/kcwn5orn.png) 内有一个UnityPackage [http://download.sdk.mob.com/d2f/c39/bb8c0f3fc8140fba0362db23ae/109335.94.unitypackage ](http://download.sdk.mob.com/d2f/c39/bb8c0f3fc8140fba0362db23ae/109335.94.unitypackage ) 2020/03/21 [http://download.sdk.mob.com/8d7/d9d/8c8378f5a240a0b6b5b6dc35fd/129538.92.unitypackage ](http://download.sdk.mob.com/8d7/d9d/8c8378f5a240a0b6b5b6dc35fd/129538.92.unitypackage ) 2020/05/08 ![image.png](https://cos.easydoc.net/86351604/files/kcwn6nwt.png) ![image.png](https://cos.easydoc.net/86351604/files/kcwn6x3s.png) tips 查看ShareSDK iOS部分的版本: 在文件夹里SDK包里面的ShareSDK.framework里面的plist文件里 109335.94.unitypackage ShareSDK 4.3.6 微信=1.8.6.1 QQ=3.3.7 ![image.png](https://cos.easydoc.net/86351604/files/kcwn7fq8.png) 129538.92.unitypackage ShareSDK 4.3.8 微信=1.8.7.1 QQ=3.3.8 ## 二、Demo阶段 ### 1. 导出工程 gradle的设置 ![image.png](https://cos.easydoc.net/86351604/files/kcwn8v55.png) 报错:关于@string/app_name的,注释这段。 ![image.png](https://cos.easydoc.net/86351604/files/kcwn9gb6.png) ### 2、测试 Demo(unity导出Android工程0.5min 真机运行2min) Android效果:测试机(华为honor android8.1.0 Wechat) Wechat:分享后停留在Wechat,没有跳出选择框,使用退回键回到app,闪屏;(见5-Wechat分享后没有弹窗) Wechat Moment:分享后停留在Wechat,没有跳出选择框;(见5-Wechat分享后没有弹窗) QQ:提示选择框; QZone:直接跳回,没有跳选择框。 iOS效果:测试机(iPhone SE iOS13.3 Wechat7.0.13 QQ8.3.9.643) Wechat:提示选择框,但点了没效果;问题 WechatMoment:直接跳回;问题 QQ:提示选择框; QZone:直接跳回。 别的app 欢乐斗地主 Wechat:提示选择框 WeChat Moment:直接跳回 ### 3. 替换Id(Demo中的) ![image.png](https://cos.easydoc.net/86351604/files/kcwnazzw.png) ![image.png](https://cos.easydoc.net/86351604/files/kcwnb9il.png) ### 4. 参数 [不同平台分享内容的详细说明](http://wiki.mob.com/%E4%B8%8D%E5%90%8C%E5%B9%B3%E5%8F%B0%E5%88%86%E4%BA%AB%E5%86%85%E5%AE%B9%E7%9A%84%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E/ ) [四个插件初始化部分字段信息统一表](https://www.mob.com/wiki/detailed?wiki=ShareSDK_Unity_aaa&id=14) ![image.png](https://cos.easydoc.net/86351604/files/kcwndc5v.png) ### 5. 一些设置和bug #### Android ● Wechat分享后没有弹窗 BypassApproval 设置为false,签名需配置。 [http://bbs.mob.com/thread-24656-1-1.html](http://bbs.mob.com/thread-24656-1-1.html) ![image.png](https://cos.easydoc.net/86351604/files/kcwnf6h1.png) ![image.png](https://cos.easydoc.net/86351604/files/kcwnff27.png) #### iOS ● QQ开放平台中,验证Universal Link状态,报不含互联信息: ![image.png](https://cos.easydoc.net/86351604/files/kcwng3av.png) 解决:path需要添加到带有id("/qq_conn/222222/*")。 ![image.png](https://cos.easydoc.net/86351604/files/kcwngief.png) ● iOS13 以上系统使用 QQ 分享功能时,弹框提示设备未授权 (错误码:25105)iOS13 以下可以正常分享。(导入129更新后的Xcode包之后好像不会出现未授权) 解决:更新shareSDK里面的QQSdk文件夹中的TencentOpenAPI.framework。 在搜索引擎中搜到的结果中有部分将问题定位在Universal Link的状态,但其实Universal Link的作用在于返回app的时候,所以在分享阶段没有影响;在部分回贴中有提到关于iOS版本的问题。 ● setShareType,不设置QQ部分也能分享成功,但微信部分就会直接报分享失败,不要落了SetShareType。 ShareContent content = new ShareContent();         content.SetShareType(contentType); #### URL Types 设置一致 #### 编译错误 ![image.png](https://cos.easydoc.net/86351604/files/kcwnhul9.png) ![image.png](https://cos.easydoc.net/86351604/files/kcwniaaf.png) 解决:导入新的Xcode包,修改using ![image.png](https://cos.easydoc.net/86351604/files/kcwnindj.png) #### 打包 ● 打包,导出Xcode Bundle Identified要与分享平台id对应的设置的一致 ● 打包报错 ![image.png](https://cos.easydoc.net/86351604/files/kcwnjpnn.png) 解决:Build Phases->Link Binary With Libraries添加Webkit.framework ![image.png](https://cos.easydoc.net/86351604/files/kcwnk0zp.png) ## 三、 合入简易版的项目中 ### 打包报错 ![image.png](https://cos.easydoc.net/86351604/files/kcwnp0mx.png) ![image.png](https://cos.easydoc.net/86351604/files/kcwnpavr.png) ### ShareSDK iOS微信分享成功后返回app闪退 思路:确定出现问题的地方,屏蔽掉调用。可以对比两版工程的UnityAppController.mm。调试找到哪里数据或者调用的问题,(已知报的错为数据为空),最终发现是微信回调的判断中使用了errCode属性,但通过该值无法区分分享和登录的回调,导致之后调用(传递)了不存在(空?)参数。文件-WXApiDelegate.mm ![image.png](https://cos.easydoc.net/86351604/files/kcwnq0rd.png) 解决方法:找到一个数据区分分享和登录,最终使用try catch。 ![image.png](https://cos.easydoc.net/86351604/files/kcwnqfgu.png) 区分登录和分享的回调 ![image.png](https://cos.easydoc.net/86351604/files/kcwnqsbh.png) xcode需配置Enable Objective-C Exceptions; ![image.png](https://cos.easydoc.net/86351604/files/kcwnr2dl.png) 自动打包配置,修改build setting,如下 ![image.png](https://cos.easydoc.net/86351604/files/kcwnrbeo.png) ### ShareSDK iOS QQ登录超时 qq登录的回调和微信相同 解决:通过URL区分 ![image.png](https://cos.easydoc.net/86351604/files/kczkqs8d.png) ![image.png](https://cos.easydoc.net/86351604/files/kczkwchb.png) ### ShareSDK iOS在无法使用Universal Link的机器上无法微信分享后回调(apple-app-site-association文件没有下载?) ### 注意 #### 1、.framework等文件放在Asset同级目录build_ios下,避免放在Assets中,会生成过多的.meta文件。 #### 2、更新QQ的AppID后,登录出现问题,其实该项目中涉及到qq的ID都应该使用原来的 ![image.png](https://cos.easydoc.net/86351604/files/kcwnsk37.png) 解决:id需和其他地方统一。