替换ADT默认的debug.keystore

来源:互联网 发布:mac怎么设置鼠标右键 编辑:程序博客网 时间:2024/06/04 20:11

最近项目中使用到腾讯QQ的快捷登录,在debug的时候,直接调用腾讯的快捷登录则会报该应用不是正版应用的错误。造成这种错误的原因是:签名错误!eclipse会在debug时会使用其默认的debug.keystore将应用签名,此时应用的签名与应用发布时使用签名是不同的(许多其他的第三方SDK也会使用签名对应用进行判断)。

由于Eclipse ADT对自定义调试证书(Custom debug keystore)是有限制的,证书的密码和alias命名以及alias密码都必须与ADT默认的debug.keystore相同。所以直接将ADT的调试证书换为发布时使用的证书也是不可行的。

  • ADT生成的debug.keystore签名信息如下:
Keystore name: “debug.keystore”Keystore password: “android”Key alias: “androiddebugkey”Key password: “android”CN: “CN=Android Debug,O=Android,C=US”
  • 自定义调试证书必须满足以下条件:
Keystore password: “android”Key alias: “androiddebugkey”Key password: “android”

此时最简单的方法就是,将ADT默认的debug.keystore替换为与正式发布的签名证书具有相同应用识别信息(MD5与SHA1)的自定义调试证书。

修改方法如下:

1.首先复制一份发布时使用的正式证书出来作为要修改的自定义调试证书。

2.修改keystore密码(Keystore password)的命令(keytool为JDK带的命令行工具):

keytool -storepasswd -keystore application.keystore

其中,application.keystore是复制出来的证书文件,执行后会提示输入证书的当前密码,和新密码以及重复新密码确认。这一步需要将密码改为android。

3.修改keystore的alias(Key alias):

keytool -changealias -keystore application.keystore -alias my_alias_name -destalias androiddebugkey

这一步中,my_alias_name是证书中当前的alias,-destalias指定的是要修改为的alias,这里按规矩来,改为androiddebugkey!这个命令会先后提示输入keystore的密码和当前alias的密码。

4.修改alias的密码(Key password):

keytool -keypasswd -keystore application.keystore -alias androiddebugkey

这一步执行后会提示输入keystore密码,alias密码,然后提示输入新的alias密码,同样,将新的alias密码改为android

注意:

在dos中输入密码是不会显示出来的
第2,3,4步不分先后顺序

以上几个操作执行后,application.keystore就是符合规矩的debug keystore了

然后在eclipse中依次打开

Eclipse: Windows->Perferences->Android:Build

最后在Custom debug keystore选项中导入application.keystore就好了。

1 0