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)

内有一个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


tips
查看ShareSDK iOS部分的版本:
在文件夹里SDK包里面的ShareSDK.framework里面的plist文件里
109335.94.unitypackage
ShareSDK 4.3.6
微信=1.8.6.1 QQ=3.3.7

129538.92.unitypackage
ShareSDK 4.3.8
微信=1.8.7.1 QQ=3.3.8
## 二、Demo阶段
### 1. 导出工程
gradle的设置

报错:关于@string/app_name的,注释这段。

### 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中的)


### 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)

### 5. 一些设置和bug
#### Android
● Wechat分享后没有弹窗
BypassApproval 设置为false,签名需配置。
[http://bbs.mob.com/thread-24656-1-1.html](http://bbs.mob.com/thread-24656-1-1.html)


#### iOS
● QQ开放平台中,验证Universal Link状态,报不含互联信息:

解决:path需要添加到带有id("/qq_conn/222222/*")。

● 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
设置一致
#### 编译错误


解决:导入新的Xcode包,修改using

#### 打包
● 打包,导出Xcode Bundle Identified要与分享平台id对应的设置的一致
● 打包报错

解决:Build Phases->Link Binary With Libraries添加Webkit.framework

## 三、 合入简易版的项目中
### 打包报错


### ShareSDK iOS微信分享成功后返回app闪退
思路:确定出现问题的地方,屏蔽掉调用。可以对比两版工程的UnityAppController.mm。调试找到哪里数据或者调用的问题,(已知报的错为数据为空),最终发现是微信回调的判断中使用了errCode属性,但通过该值无法区分分享和登录的回调,导致之后调用(传递)了不存在(空?)参数。文件-WXApiDelegate.mm

解决方法:找到一个数据区分分享和登录,最终使用try catch。

区分登录和分享的回调

xcode需配置Enable Objective-C Exceptions;

自动打包配置,修改build setting,如下

### ShareSDK iOS QQ登录超时
qq登录的回调和微信相同
解决:通过URL区分


### ShareSDK iOS在无法使用Universal Link的机器上无法微信分享后回调(apple-app-site-association文件没有下载?)
### 注意
#### 1、.framework等文件放在Asset同级目录build_ios下,避免放在Assets中,会生成过多的.meta文件。
#### 2、更新QQ的AppID后,登录出现问题,其实该项目中涉及到qq的ID都应该使用原来的

解决:id需和其他地方统一。