Android应用做完了还是要放到某市场上让大家下载的。Android Market上是要收费的。一年10美元。不过在中国的话,似乎不太需要考虑,因为很多Android机子上是没有Play store的。但是要放到市场上还是需要签名的,用Eclipse开发的时候默认是通过Debug.keystore来签名的,不过这个是无法放到Android Market上的。可以自行在本机上生成一个*.keystore的文件,然后用这个文件签名。
具体操作如图,使用java的keytool命令,其中 Wayne173是欲存放在金钥文件中的名称, -validity 是自行生成签署凭证的有效天数。后面的-alias 和之后的密码是要记好的,在导出应用的时候是要用到的。
其中密码会被询问两次,请注意,需要设定的这两个密码用途是不相同的,虽然它们可以被设置为相同的密码。第一次询问设置的密码是数字签名密码,这个密码是用来保护数字签名不被轻易盗用;第二次询问的密码是.keystore文件加密密码,这个密码可以保证文件不被暴力破解。
好,现在有keystore文件了,那么怎么导出签名的应用呢?对于Eclipse来说,操作就是运行“Android Tools”——Export Signed Application Package,然后选择要导出的应用,下一步后,选择刚才生成的*.keystore文件。然后输入刚才设置的密码。下一步后再选择alias ,如果没有的话(第一次操作)可能要手动输入,然后输入密码。最后就可以导出了。
对于Android Studio来说也有类似的操作。稍微不同的是它选择好项目后,运行Build——Generate Signed APk
然后选择刚才生成的*.keysotre文件,输入alias,密码,还可以记着密码,之后还有可以设置个密码,如果要记住密码,会再让你设置个密码,为了安全吧。以后每次操作就要输入密码才能进入这个界面。
之后还可以选择导出的方式,debug还是release,还没研究好这个的区别。再然后就可以导出了。
AndroidStudio还有一种方式,每次运行的时候就可以自动生成。需要修改下配置文件。
修改app下的build.gradle,
照样子写好keystore文件,密码 alias,注意下面的 release{}这个是在生成release版本的时候才会调用。如果debug的版本是不起作用的。releaseConfig这个名字是自己随便起的,只要两处的一致就可以了。关于keystore文件放在哪里的问题,我找了好多都没有做说明,只是在我运行的时候报错才发现,这个是要放在app目录下的。
要想修改运行时是debug还是release参考下面的图吧,很清楚,就不赘述了。
这样运行的时候,如果之前测试设备上已经有了之前没有用这个签名的版本的话,会提示你签名不同,要卸载后才能安装,点是就可以了。