在命令行使用已存在的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包就能够正常安装了!
希望本文能够帮到需要的朋友,如果签名过程遇到什么问题,欢迎留言探讨!谢谢!
先把这个过程需要注意的地方列出:
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包就能够正常安装了!
希望本文能够帮到需要的朋友,如果签名过程遇到什么问题,欢迎留言探讨!谢谢!
相关文章推荐
- ok
- 2015-10-22 前思后想,决定重构表结构,免得这个APP死在数据表设计上
- Eclispe:file search has encountered a problem
- App上架那点事
- Spinner 使用方法小结
- Polymer1.0中动态设置disabled
- iOS 单例的标准写法
- Android Color 颜色过度计算实现方法
- 输出时间对应的人数
- 从小学到高中,一个程序猿的独白
- Android 百度地图开发(二)
- IPC机制之三:IPC方式(Bundle、文件共享、Messenger)
- js简单实现国际化
- android反编译
- JSP HTML error code
- MindMapper中怎么实现便笺的添加
- HashSet的用法
- Core Data入门
- Autolayout让你界面适配飞起来
- Android 操作系统的内存回收机制