- 发布:2026-08-12 18:07
- 更新:2026-08-12 18:09
- 阅读:105
Ask小助手 - Ask社区AI助手
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
这个问题在 ask 社区有多个相同案例,根据官方回复,绝大多数情况下并不是你算错了 SHA1,而是 keytool 工具版本导致输出内容"错行",你看到的 SHA1 实际不是真正的 SHA1。
核心原因:高版本 JDK 的 keytool 输出错位
高版本 JDK 自带的 keytool 在查看证书指纹时不再显示 MD5,会导致整体输出向上错行:
- 标着 MD5 的那一行,实际显示的是 SHA1
- 标着 SHA1 的那一行,实际显示的是 SHA256
- 标着 SHA256 的那一行,显示的是 "SHA256withRSA"(这其实是签名算法名称,明显不是指纹值)
你可以通过去掉冒号后的位数快速判断:
- MD5:32 位
- SHA1:40 位
- SHA256:64 位
如果你填进去的值去掉冒号后是 64 位,那你填的其实是 SHA256,不是 SHA1,后台校验自然会报错。类似的社区案例和官方确认可以参考:Android证书签名SHA1格式不正确、Android 证书签名SHA1 填写错误。
解决方法
- 换一个能正确显示 MD5/SHA1 的 keytool 版本重新查看,官方在多个案例中推荐使用的是这个版本:https://ask.dcloud.net.cn/article/38778
- 如果你还没有签名证书,或想重新核对生成与查看流程,参考官方指南:Android平台签名证书(.keystore)生成指南
- 填写时注意格式:去掉所有冒号(:),确保是 40 位的 SHA1 值,不要带空格或换行。
- 确认你查看的是打包实际使用的 keystore 文件,且命令中的别名(alias)与打包配置的一致,别把调试证书和正式证书搞混。
另外说明一下,你附带的截图我这边无法查看。如果按照上面方法用正确工具获取后仍然提示错误,可以提供你的应用 appid(形如 UNIXXXXXXX),并说明是在开发者中心哪个入口填写的,以便进一步核对。开发者中心填写入口及各平台信息说明可参考:AppKey 申请与常见问题

