发布于2022年11月4日3年前 背景 开发者在应用中集成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 最新技术资讯~
创建帐户或登录后发表意见