集成 Health Kit 时因证书问题出现错误码 50063 的解决方案
一、问题描述及操作
应用集成 Health Kit SDK 后,在华为手机上进行登录授权时,返回错误码 50063。
1、查看相关错误码。‘50063’在 Health Kit 错误码中的描述是“安装的 HMS Core APK 版本不匹配,无法调用接口。”提供的解决方案是“请安装最新版本的 HMS Core(APK)后,再调用接口”。
2、根据文档中提供的解决方案,卸载了手机设备中的 HMS Core APK,重新更新到最新版本后,仍返回错误码 50063。
3、调用HuaweiApiAvailability#isHuaweiMobileServicesAvailable(Context context)接口,检测 HMS Core (APK)在设备上是否成功安装和集成时,返回结果 1,表示在设备上没有发现 HMS Core(APK),预期结果应该返回 0。
4、使用‘adb logcat > log.txt’获取完整日志,进行日志分析。
二、原因分析
在日志中筛选“HMSSDK_”,可以看到关键日志“E/HMSSDK_X509CertUtil: Not include alias 052root”。
根据日志显示,是因为 hmsrootcas.bks 证书中没有发现 052root 信息,导致校验失败,从而引起登录失败。正常情况下,如果使用 Maven 仓集成 SDK 时,此 hmsrootcas.bks 证书文件会在打包时自动放到 apk 的 assets 目录下,一般不会出现问题。
如果没有日志,也可以借助工具查看 APK 中的 hmsrootcas.bks 是否包含 052root:
三、解决方案
1、检查项目工程中的 assets 资源文件目录中是否存在 hmsrootcas.bks 文件,如果存在的话,可以删除,在打包时 hmsrootcas.bks 会自动打包到 apk 中。
2、如果 assets 资源文件目录中不存在 hmsrootcas.bks 文件或删除后,仍出现此问题,可以手动集成包含 052root 信息的 bks 文件,具体操作如下:
1)访问链接,下载 SDK 文件。
2)解压下载的文件,根据以下路径找到 bks 文件,并集成到项目主工程下的 assets 中:hmssdk-eclipse-6.9.0.300\Security-ssl\assets。仅放置 hmsrootcas.bks 文件即可。
3)重新编译项目。
更多接入华为运动健康服务常见问题,请参见FAQ
了解更多详情>>
获取开发指导文档
关注我们,第一时间了解 HMS Core 最新技术资讯~
评论