一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Android通过keytool和jarsigner实现应用签名

时间:2015-05-24 编辑:简简单单 来源:一聚教程网

1、生成正式版本,并找到unsigned文件的路径,记下来


demo-unsigned.apk

2、用keytool生成签名keystore文件

keytool -genkey -v -keystore .keystore -alias -keyalg -keysize -validity

  :要生成的签名文件名,扩展名为 keystore
:签名的别名,作为唯一性依据
:加密方式,譬如RSA
:签名长度,可忽略
:有效期,单位是 天

  输入以上命令后,接下来按提示操作,分别是:
输入密码,
确认密码,
组织单位名称,
组织名称,
市,
省,
国家两字母代码(中国是CN)

  最后,核对以上信息,按Y完成

  输入主密码,这里我不是太了解为什么要分两个,直接回车表示使用相同密码。

3、用jarsigner给未签名的应用签名并生成已签名的应用


jarsigner -verbose -keystore -signedjar -digestalg SHA1 -sigalg MD5withRSA

  :上一步通过keytool生成的签名文件(带扩展名keystore)
:签名后输出的文件
:未签名且此刻用于签名的文件
:签名的别名(不带扩展名keystore)

  然后,按提示输入上一步设置的密码,即可大功告成。


关于keytool和jarsigner显示乱码的问题,解决方法

部分脚本在 MAC OS X 的终端输出不了正常中文,取而代之的是?,即乱码,原因是其编码不正确。本以为UTF-8可以打天下,谁知有人不按常理出牌,比如keytool和jarsigner。。。

解决方法:
打开终端后在菜单-偏好设置-描述文件-高级,下面有文本编码的设置,默认是UTF-8,这里我改为中文(GB 18030),至少keytool和jarsigner返回的中文可以正常显示。

注意:
不同的颜色风格自有一套高级选项,所以修改了文本编码后切换其他的颜色风格不会把该设置带过去

热门栏目