Android调试大法 自定义IDE默认签名文件==>微信支付、微信登录、微信分享,debug时调试通过,release时调不起微信 解决问题的原理 修改keystore密码 alias alias密码

转载地址:http://blog.yanzhenjie.com

Android调试大法之自定义IDE默认签名文件,你是否为调试第三方SDK时debug签名和release签名发生冲突而烦恼?你是否在debug时第三方功能测试通过,而release时无法使用?

如果你没有遇到我说的问题,那么我举几个例子。

  1. 微信支付、微信登录、微信分享,debug时调试通过,release时调不起微信? 
  2. 百度地图、高德地图,要不停的切换debug签名、release签名的hash值很麻烦?

上面的这些问题归根结底原因是我们开发的时候直接运行,使用的是默认的debug.keystore这个签名文件,而我们打包后正式环境用的是我们自定义的xxx.keystorexxx.jks等签名文件,两个文件的hash值不同。

而一般第三方的SDK都是通过识别我们应用的包名和签名的hash来判断是否在他们平台注册过,是否是官方正版应用等,如果验证不通过,自然不能调起第三方的的app了。

今天的文章内容不多,只需要3分钟就可以看完,同时保证可以解决上述因为签名引起的问题。


原理就是把我们正式的签名文件的keystore密码、aliasalias密码都修改成与Android默认签名debug.keystore的相同,并且在EclipseAndroidStudio中指定我们默认debug签名文件路径,此时当我们直接运行项目时ide将直接用我们指定的这个签名文件,此时我们debug时的签名和正式发布的签名一致了,所以在调试的时候什么微信、第三方支付都不存在签名错误等云云。(重点:签名文件和密码没有关系!!! 需要去了解签名的原理

Android默认签名文件debug.keystore的keystore密码、alias、alias密码分别是:

  • keystore密码:android
  • alias:androiddebugkey
  • alias密码:android

所以接下来修改正式签名的这个三个属性。

修改keystore密码 alias alias密码

特别注意:修改签名文件密码、alias、alias密码相当于破坏了这个文件,所以我们修改的时候一定要copy一个签名文件出来,然后修改这个copy出来的文件的上述三个属性。

准备:进入debug.keystore 当前目录下(mac,Windows一样):

1: 修改keystore密码:   keytool -storepasswd -keystore debug.keystore 
2: 修改keystorealias: keytool -changealias -keystore debug.keystore -alias demokey.keystore -destalias androiddebugkey

3: 修改alias的密码:  keytool -keypasswd -keystore debug.keystore -alias androiddebugkey 

完成! 
备注相关信息都是我本地的。

个人开发者如果想体验微信登录功能,有一个变通的版本,就是用  ShareSDK 里面带的appid 和key,来做你的测试 :)