共计 925 个字符,预计需要花费 3 分钟才能阅读完成。
背景:
对接华为 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