SDK接入-YSDK(应用宝1.7.0)-2021-01-07
大家好,近期在做多渠道打包平台,会定期遇到第三方SDK升级,所以很被动的是,我们也要跟随他们的步伐,及时升级。否则将面临第三方开发者站无法过审的问题。之前我整理了 CodeReview 系列的博客,今天开始会抽时间整理第三方SDK接入的系列问题。当然,CodeReview系列的还会进行下去。
应用宝SDK的接入其实还是很繁琐的,各种参数的配置,还需要注意区分沙盒环境的配置和现网环境的配置的不同区别。今天我分享几个典型的问题:
1.沙盒环境和现网环境最容易出现的错误:
MidasPay 的沙盒环境下的 appKey 其实和 qqAppKey的值是相同的,但本质上者俩个东西是独立的,所以在切换到现网环境后,一定要注意,千万别把动qqAppKey。
2.UserLoginRet flag:3100;get login ret failed, on login recrod in db!
其实3100错误在 YSDK 的官网解释是本地票据不可用,引导用户重新登录。同时也给出了检测方案,比如参数核对,包名是否一致、签名是否一致等等。但是大多情况下,大家应该不会出像这些问题。让我们来看下详细的日志:
异常详细信息:
2021-01-06 20:56:03.623 8897-8897/? D/YSDK_DOCTOR: OK-notifyWakeupAsync 2021-01-06 20:56:03.623 8897-8897/? D/YSDK UserModule: mUserListener.OnWakeupNotify 2021-01-06 20:56:03.623 8897-8897/? D/YSDK UserModule: notifyWakeupAsync finished 2021-01-06 20:56:14.992 8897-8971/? D/YSDK b$a.run: TaskDispatcher run 2021-01-06 20:56:14.993 8897-8971/? D/YSDKDuration: Game time Duration :120 2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: WX OK-getLoginRecord 2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: getWXUserLoginRet 2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: UserLoginRet flag:3100;get login ret failed, on login recrod in db! 2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: WXUserLoginRet2UserLoginRet 2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: WX OK-getLoginRecord 2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: getWXUserLoginRet 2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: UserLoginRet flag:3100;get login ret failed, on login recrod in db! 2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: WXUserLoginRet2UserLoginRet
上面的异常信息发生在微信调起后,然后点击授权后,发现app并没有收到 回调,也就是 YSDK OnLoginNotify 方法没有被回调。
面对第三方SDK接入的问题分析,我有以下几种思路:
1.参数核对。(一定要仔细核对参数是否正确)
2.AndroidManifest.xml配置核对。(尤其需要注意每次的变革文档,要仔细注意其中的新增点和删除点,往往这些是我们升级或者接入SDK时常出现的问题的所在点。)
3.Assets配置和res文件是否缺失。
4.libs依赖是否缺失,当然这个分eclipse接入和gradle接入。
我们再回到上面的异常:
这个异常只会出现在微信登录时,但是QQ登录授权一切正常。所以直观的想,是不是微信ysdk回调用的时候有问题,但是尝试ysdk demo后发现时正常的。所以还是我们接入的问题。顺着我的思路来,参数检查没问题,然后重点关注AndroidManifest.xml的配置。
解决方案:
仔细检查 AndroidManifest.xml,发现 YSDK1.7.0 新增加了
<meta-data android:name="MAIN_ACTIVITY" android:value="${mainActivity}"/>
配置节点,然后问题就出现在这里,${mainActivity} 一定要配置成 app的主activity。此处配置节点错误,直接回导致微信登录授权后,无回调。
备注:
其实如果直接接入YSDK的情况下,应该会很少遇到上面的问题,但是我们的场景比较复杂,我们时聚合SDK,然后通过打包平台来对需要打包的app进行反编译,然后整合第三方SDK(如应用宝)的资源,jar、assests等等。整合的方式是通过桥接层来完成的,所以,这个过程中,首先是会通过demo验证。上述问题的出现就是因为,我们的demo 中的MAIN_ACTIVITY写死了,所以demo 的 QQ和微信都是登录正常的。 但是用正式的 app出ysdk渠道包时,就出现了上面的问题。