之前在测试Eclipse ADT的Custom debug keystore自定义调试证书的时候,发过一篇关于调试证书规格的博文:Eclipse ADT的Custom debug keystore所需证书规格,提到过自定义调试证书的密码和alias命名以及alias密码都是有规矩的。其实Android应用开发接入各种SDK时会发现,有很多SDK是需要靠package name和keystore的指纹hash来识别的(百度地图SDK、Facebook SDK等等…),这样如果使用默认自动生成的debug keystore的话就会给开发调试工作带来一些麻烦。这时可以通过修改正式的release keystore,生成一份“遵守规矩”的临时自定义调试证书给开发时用,就方便多了,具体方法如下:
1. 首先当然是先复制一份正式证书出来作为要修改为的临时调试证书。
2. 修改keystore密码的命令(keytool为JDK带的命令行工具):
keytool -storepasswd -keystore my.keystore
其中,my.keystore是复制出来的证书文件,执行后会提示输入证书的当前密码,和新密码以及重复新密码确认。这一步需要将密码改为android。
3. 修改keystore的alias:
keytool -changealias -keystore my.keystore -alias my_name -destalias androiddebugkey
这一步中,my_name是证书中当前的alias,-destalias指定的是要修改为的alias,这里按规矩来,改为androiddebugkey!这个命令会先后提示输入keystore的密码和当前alias的密码。
4. 修改alias的密码:
keytool -keypasswd -keystore my.keystore -alias androiddebugkey
这一步执行后会提示输入keystore密码,alias密码,然后提示输入新的alias密码,同样,按规矩来,改为android!
以上几个操作执行后,my.keystore就是符合规矩的debug keystore了,接着在Eclipse的ADT设置中选中这个custom debug keystore即可,如下:
同时还可以看到证书的MD5以及SHA1指纹。
PS:以上3步命令行并没有先后顺序。
参考文章:
- [TUT] Change alias passwords of your Android Keystore http://blog.blundell-apps.com/tut-change-alias-passwords-of-your-android-keystore/#comment-2408
博主友情提示:
如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用>>博主专用加密工具v3<<处理后发布,原文只有博主可以看到。
收藏
收藏
更果管用,将之前生成的签名文件,修改了密码,也重导出了apk.测试可用.谢谢博主.
不过有个问题就是,原在手机上装了这个APP,当修改了密码后,再导出,然后安装,手机会提示已存在签名冲突的应用,这个好像必须要把原APP卸载,再重安装新的才行.
嗯,这个修改也会改变指纹hash,会被判定为签名冲突。
这个必须的~
收藏!
博主,从你的博客转走两篇文章,注明了原始出处~
好的
博主,修改完以后md5值是不是改变了?
你好,文件本身内容有变化md5是会变的
那提交到开放平台的md5值不就不一致了吗?
你的发布平台需要验证keystore文件校验码的话就不能用这种方法对证书做改动了,除非是首次上传之前完成修改
多谢博主答复,你的意思是发布apk的时候必须使用没有修改的keystore了?
不客气,那倒不是,如果以前已经发布过的话,需要维持fingerprint一致的话,就不能修改了
怎么提示我别名不存在呢?
你好,请问是哪一步的提示?