【FAQ】应用集成HMS Core部分服务出现“ 6003报错”情况的解决方法来啦
背景
开发者在应用中集成HMS Core部分服务时,android sdk 以及flutter等跨平台sdk,会出现编译打包后,运行报6003错误码的情况。根据查询可以得知,错误代码 6003 表示证书指纹配置不一致,主要是生成的包(例如安卓apk)的签名,与华为开发者平台上应用设置里面配置的不一致。
原因
-
未按照开发文档,在AppGallery Connect 应用设置配置签名SHA256
-
已经在开发者平台上配置SHA256,但是和实际打包生成apk签名的 SHA256不一致。
解决方法
- 按照官方文档配置SHA256即可:
注意:添加SHA256之后,需要重新下载agcconnect.json文件更新到工程,重新生成应用apk。
- 可以直接获取打包生成的apk签名的SHA256, 添加配置到AppGallery Connect 应用设置配置下,然后重新下载agcconnect.json文件更新到工程,重新生成应用apk。
开发者可以使用以下任意一种方式获取apk 指纹并进行比较,确保它是相同的:
方式一:jarsigner
命令示例:jarsigner -verbose -verify MyAPK_base_v11.0.apk > MyAPK_info.txt
查看MyAPK_info.txt 找到".RSA"文件的路径,然后使用以下命令 解析.RSA
unzip -p MyAPK_base_v11.0.apk META-INF/BNDLTOOL.RSA | keytool -printcert
结果:
Certificate fingerprints:
SHA1: D0:88:29:99:94:C3:72:44:EA:CF:B1:6B:09:3E:01:95:FE:E4:45:BE
SHA256: EF:68:A7:0A:3A:47:F8:DD:46:58:52:EA:E2:59:AE:D6:1A:43:38:D8:14:26:05:9E:D3:99:C2:D1:F6:34:D9:DE
Signature algorithm name: SHA1withRSA (weak)
Subject Public Key Algorithm: 1024-bit RSA key (weak)
方式二:apksigner.bat
命令示例:(apksigner.bat 通常位于 /android/build-tools 文件夹中)
apksigner.bat verify --print-certs MyAPK_base_v10.2.6-8569.apk
结果:
Signer #1 certificate DN: CN=Michael Smith, OU=My Org, O=A Team, L=Okemos, ST=Michigan, C=US
Signer #1 certificate SHA-256 digest: ef68a70a3a47f8dd465852eae259aed61a4338d81426059ed399c2d1f634d9de
Signer #1 certificate SHA-1 digest: d088299994c37244eacfb16b093e0195fee445be
Signer #1 certificate MD5 digest: 68710e87d99e7f946958db33d3fcf13c
由此可获取到打包的签名SHA256为:
EF:68:A7:0A:3A:47:F8:DD:46:58:52:EA:E2:59:AE:D6:1A:43:38:D8:14:26:05:9E:D3:99:C2:D1:F6:34:D9:DE
将其与AppGallery Connect中进行对比SHA-256。如果不存在,就添加SHA256(同一个应用可以添加多个SHA256),然后需要重新下载agcconnect.json文件更新到工程,重新生成应用apk。
如果签名SHA256添加配置一致后依旧报6003错误,则需要开发者在自己设备的Apps页面中找到HMS Core (APK)并清除缓存,重启应用程序后再次执行之前的操作。这是HMS Core (APK)可能会缓存签名文件而导致的。
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~