Android开发必备技能——修改debug签名

从事Android开发的小伙伴们,想必都会遇到这样的问题。当你的应用中需要集成百度地图、极光推送等第三方平台时,会去申请一个叫做AppKey的东西。与此同时,你得提供下应用签名信息的MD5或SHA1。然后就悲催的发现,只有用指定的签名文件打包时,该功能才能正常使用。如果你用的是开发工具的debug keystore签名信息,直接run一下就好,如果你用的是APP发布时候的keystore,每次测试时都得export 一个apk。心中一万只草泥马在奔腾的有木有?

楼主之前的小伎俩就是,去申请两个AppKey,分别对应debug keystore 和 release keystore。然后在心中默默地为自己的机智点个赞。然而一些比楼主更聪明的小伙伴发现,eclipse里面可以替换签名文件。于是满怀欣喜的去指定一个keystore,期待这样的画面(注意我此处的md5和sha1):

然而看到的是这样的:

小伙伴的内心应该是崩溃的。

签名文件(keystore)

在生成签名文件时候,输入的最重要的三条信息是:store passwordkey aliaskey password。有过用eclipse export apk 经验的童鞋应该很清楚这三个信息的作用。

此时应该很好理解之前的错误了,因为指定debug keystore时,eclipse根本没让输入以上三个信息。我也就呵呵一笑了……再看默认的debug keystore,会有一种错觉,该签名文件没有密码。

然而,事实并不是如我们所想的那样。默认的debug keystore的三个信息如下:

  1. store password:android
  2. key alias:androiddebugkey
  3. key password:android

并且,eclipse 的debug keystore只认含有这三个信息的keystore。

修改签名文件

已经知道了错误原因,那么接下来的解决方案只能尝试着去修改keystore里的这三个信息了。总不能去重新生成一个包含这个三个信息的keystore吧?然并卵……

修改之前,先查看一下keystore里的信息:

注意此处的MD5和SHA1与之前截图的一致。

查看keystore信息:keytool -list -v -keystore “keystore 文件” -storepass “keystore 密码”

将上述三个信息,分三步修改。比较坑爹的是,此处只能用命令玩了(修改之前,记得将原有的签名文件备份)。

  1. 修改store password。

命令:keytool -storepasswd -keystore “keystore 文件”。

会提示输入旧的密码,再输入两次新密码,此时将新密码改成android。

  1. 修改key alias。

命令:keytool -changealias -keystore “keystore 文件” -alias “keystore 别名” -destalias “目的别名”。

将目的别名改成:androiddebugkey,会提示输入第一个密码,就是第一步改过的android,第二个密码是之前的key password。

  1. 修改key password。

命令:keytool -keypasswd -keystore “keystore 文件” -alias “指定修改密码的别名”。

由于,一个keystore中,可以存储多个alias,因此此处需要指定修改密码的alias(这里应当是androiddebugkey),然后需要输入store password:android(修改后的)。再输入旧的key password(之前只是修改了alias :androiddebugkey)。最后输入两次新的key password:android。

最后,再次查看签名文件信息:

输入的密钥库口令,已经是修改之后的android,alias 也已经修改成androiddebugkey。现在就可以放在eclipse里面替换了。

强大的AndroidStudio

看到这里,心很累了有木有?感觉eclipse是无比的坑爹。很好奇,AndroidStudio是怎么实现这个功能的,那么接下来的操作,也许会让你惊呆。

第一步,添加一个签名文件配置信息。选择keystore,并输入store password、key alias,key password。

第二步,在debug模式中,选择之前添加的签名文件配置信息。

也可以直接在gradle中配置。

然后,就没然后了。对Studio 只有一个评价,android开发神器。没有之一……

不说了,我去卸载eclipse。

Author: flueky
Link: http://example.com/218/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.