您的位置:首页 > 其它

在命令行使用已存在的keystore对apk包进行签名

2015-10-22 14:09 330 查看
签名对apk包来说是很重要,这一点不用多说。下面介绍一下,如何使用命令行对apk进行签名。

先把这个过程需要注意的地方列出:

a. 先把apk包放到JDK的bin目录下面,把生成的keystore也放到这个目录下面。例如:我的目录是:D:\Program Files\Java\jdk1.7.0_51\bin

b. 接着打开运行cmd,打开命令行,然后把命令行定位到你的jdk的bin目录下。例如:我的jdk的bin目录是:



注意事项说完,那就开始进行签名了:

1. 首先, 我们可以先对apk包进行判断,看看该包是否已经有过签名了。使用的命令是:jarsigner -verify enhanced.apk

enhance.apk是我要验证是否签名过的apk包,这里只需要替换成你的apk包即可。如果没有签名过,那会出现下面提示:



2. 接着开始对我的apk进行签名,使用如下命令:jarsigner -verbose -keystore android.keystore -signedjar enhanced_signed.apk enhanced.apk android.keystore

说明下:

-verbose参数表示:显示出签名详细信息

-keystore表示使用当前目录中的android.keystore签名证书文件,这里需要替换成你自己的keystore


-signedjar enhanced_signed.apk enhanced.apk android.keystore表示签名后生成的APK名称是enhanced_signed.apk,需要签名的APK名称是enhanced.apk,android.keystore表示keystore的别名,这里你需要把这个别名替换成你的keystore的别名


3. 接着,会提示你需要输入密码,该输入什么你自己清楚咯。

4. 操作正确的话,你会看到输出一堆东西,如下:



大功告成,这是你的apk就是已经签名好的啦!

重点补充:以上使用的JDK版本是1.6的,如果你的JDK是1.7或者以上的版本,那么使用上面签名命令的包,肯定是安装不了的,会提示一下信息:



那么,我们需要使用下面的新签名命令:

jarsigner -digestalg SHA1 -sigalg MD5withRSA -keystore android.keystore -storepass android -signedjar enhanced_sign.apk enhanced.apk android.keystore

对比一下旧的命令:jarsigner -verbose -keystore android.keystore -signedjar enhanced_signed.apk enhanced.apk android.keystore

可以发现,新命令添加了-digestalg SHA1 -sigalg MD5withRSA这一个东西。抽取一下语法如下:

jarsigner -digestalg SHA1 -sigalg MD5withRSA -keystore [你的keystore] -storepass [keystore的密码] -signedjar [签名后的apk] [未签名的apk]
[keystore的别名]

使用新命令签名的apk包就能够正常安装了!

希望本文能够帮到需要的朋友,如果签名过程遇到什么问题,欢迎留言探讨!谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: