彻底解决问题:签名不对,请检查签名是否与开放平台上填写的一致

  • 背景
  • 问题分析
  • 思路分析:

  • 应用签名和应用包名一致,仍报错的解决办法:
  • 思路分析:
  • Android APP数字证书和应用签名的用途和关系
  • 用途
  • 获取
  • HBuilderX打包注意事项
  • 参考文章


背景

做APP微信登录的时候,弹出『签名不对,请检查签名是否与开放平台上填写的一致。』的问题,如图:

android 微信分享签名不一致 安装微信签名不一致_Android

问题分析

之前微信登录一直都是好的,上线的时候,突然发现还是出现上述问题。于是,网搜了很多资料,走了不少弯路,终于解决问题,写一篇笔记,希望对碰到问题的朋友有些许帮助。

不啰嗦,进入正题:

思路分析:

主线思路
Android APP中的应用签名和应用包名需要和微信开放平台上的应用签名和应用包名一致,否则就会出现上述问题。

篇外话:微信.开放平台中开发信息填写规则

用于对当前应用进行二次身份校验,开发者可以使用签名生成工具直接从安装当前应用的手机中获取。应用签名由开发者签名该应用的keystore文件决定。
也就是Android APP的中的包名+签名需要跟微信开放平台的包名+签名一致。
这里的keystore文件即数字证书(本篇文章后面有论述);

微信开放平台上的应用签名和应用包如下图:

android 微信分享签名不一致 安装微信签名不一致_android 微信分享签名不一致_02

确认应用签名和应用包名需要和微信开放平台上的应用签名和应用包名一致后,理想情况下即可解决问题。

现实情况复杂多变,刚才的思路在理想情况下即可解决问题;如果问题还没有解决,那么接着看:

应用签名和应用包名一致,仍报错的解决办法:

思路分析:

  1. Android APP中的应用签名和应用包名需要和微信开放平台上的应用签名和应用包名一致;
  2. 微信会缓存包信息、或者appid等信息,若第一次没有调起登录,要去清除微信的缓存信息(非聊天信息),就可以调起微信登录了;

(微信清理缓存步骤:登录微信=》我=》设置=》通用=》微信存储空间=》缓存=》清理)

  1. 2行不通,则退出微信,重新登录;
  2. done。

Android APP数字证书和应用签名的用途和关系

可能一些同学不知道如何数字证书和应用签名的用途和关系,下面简单做一点科普:

用途

  1. 数字证书(.keystore文件)进行签名,用于表明开发者身份;
  2. 签名的目的是对当前应用进行二次身份校验(不然会有同一包名下不同签名的问题);

篇外话:

Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。
Android证书的生成是自助和免费的,不需要审批或付费。

获取

Android平台签名证书(.keystore)生成指南 生成签名证书
查看证书信息

安卓签名获取工具 简单来说就是在一个gensignature软件中填入apk包名后,获取该apk的签名(应用签名和签名是一个意思)。

HBuilderX打包注意事项

1.包名是在HBuilderX的打包界面里自己填的。这个包名要和微信平台里填的包名一致。
2. 应用打包出来后,使用gensignature,输入包名可获取签名字符串,将这个签名字符串输入到微信开放平台即可。