华为审核驳回:签名不一致排查指导

背景:

对接华为HMS SDK开发了一款游戏,近期游戏更新,提交审核被驳回:我们发现您的游戏与在货架版本签名不一致,请修改。
这里根据这次问题定位,写了个总结,分享给大家。

排查步骤

1. 对比应用前一版本与现版本的是否一致

查看工程中的指纹证书:
a. 打开命令行,输入keytool -list –v –keystore [签名文件路径]

b. 输入秘钥库口令

c. 查看当前签名指纹证书

在这里插入图片描述

APK签名查看方法:
a. 输入命令:keytool -printcert -jarfile xxx.apk(apk文件路径)

b. 执行命令后显示如下图:

在这里插入图片描述

c. 可以看到当前应用apk的SHA256值,需要对比的两个应用的SHA256值进行确认两个应用的签名证书是否一致

再将两个APK的指纹证书与工程中的指纹证书对比,查看是否一致

2. 如果签名证书不一致,一般有两种情况,一种是两个apk版本使用了不同的签名文件打包。 这种情况,首先检查工程中签名使用的jks文件或keystore文件是否为同一文件。或者检查jks或者keystore文件是否与不同环境或不同渠道混用,导致了签名的不一致。

例如:

在这里插入图片描述

这里有debug和release两个环境,两者使用的jks文件不同,需要确认每个环境配置的jks文件是否一一对应,不能将debug的jks文件配置到release中,反之亦然。

3. 如果jks文件或keystore文件一致,则需要确认打包签名是否使用了自动化流程,检查自动化流程中是否使用了常规的DEX文件加壳,从而导致了签名不一致。

以一个android应用加固网站为例,应用可以在类似的第三方平台进行二次加固,一般此类平台加固完成之后可能会丢失签名,需要二次apk签名并添加渠道:

在这里插入图片描述

上传应用:

在这里插入图片描述

应用加固:

在这里插入图片描述

加固完成后会生成一个新的apk:

在这里插入图片描述

可以看到应用在加固后签名已经丢失,一般使用平台流程化加固打包会在加固完成后自动进行二次签名,这样会导致应用签名与原始工程签名不一致,此处建议二次签名自己手动使用命令签名打包


原文链接:https://developer.huawei.com/consumer/cn/forum/topic/0204405829208330252?fid=18

原作者:AppGallery Connect

猜你喜欢

转载自blog.51cto.com/14772288/2568528