You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SHA1指纹校验APK代码完整性时签名包SHA1不匹配问题排查

问题原因及解决办法

核心原因

你遇到的SHA1不匹配,大概率是应用签名密钥和上传密钥分离导致的:

  • 当使用Google Play App Signing(当前为默认开启机制),上传App Bundle到Play后,Google会用它管理的「应用签名密钥」重新签名最终分发的APK,而你本地记录的是自己的「上传密钥」SHA1,两者自然不一致。
  • 另外,Bitrise构建如果是直接打包App Bundle并上传Play,最终用户安装的APK也是Google重签后的,SHA1和你本地release密钥的不一样;如果是Bitrise直接打包签名APK,要确认Bitrise用的签名密钥和你本地测试的release-keystore完全一致。

解决步骤

1. 获取正确的SHA1值

如果通过Google Play分发应用:

  • 登录Google Play控制台,进入你的应用 → 「应用签名」页面,找到「应用签名证书」的SHA1指纹,把这个值配置到local.properties中,替换原来的上传密钥SHA1。
    如果直接分发APK(不走Play):
  • 确认Bitrise构建时使用的签名密钥(包括密钥库文件、密码、别名)和你本地测试的release-keystore完全一致,然后用这个密钥生成的SHA1配置到项目中。

2. 校验SHA1的格式一致性

检查你的byte2HexFormatted方法生成的字符串格式,和配置的PROD_SHA1_SIGNATURE是否一致:

  • 比如是否带冒号(AA:BB:CC... vs AABBCC...)、大小写(大写vs小写),这些细微差异都会导致匹配失败,统一两者格式即可。

3. 代码逻辑优化(可选)

如果需要同时兼容本地测试和Play分发场景,可以把预期SHA1做成数组,只要匹配其中一个就通过;若你坚持只用一个值,确保配置的是最终用户安装APK对应的签名密钥SHA1即可。

内容的提问来源于stack exchange,提问作者user21300258

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 06:17:14