使用jdk自带的jarsigner就可以,但是要注意jdk的版本,1.6以上的版本可能存在问题。如果签名运行提示没有签名(INSTALL_PARSE_FAILED_NO_CERTIFICATES)。那么将命令加上“-digestalg SHA1 -sigalg MD5withRSA”
签名的命令如下:
jarsigner -verbose -keystore xxx.keystore -signedjar 生成的apk 被签名的apkxxx.keystore的别名
回车后输入密码即可。
当然有的人还会做一下下面的命令:
zipalign -v 4 源apk 生成的apk
最后apk的包里会包括下面三个签名的文件:
1.META-INF/MANIFEST.MF 这个文件能看到使用的manifest的版本,1.7的就是那个烂甲骨文的,有很多问题。
Manifest-Version: 1.0
Created-By: 1.6.0_45 (xxx公司.)
Name: res/drawable-hdpi/xxx.png
SHA1-Digest: IEBuy5ErFNDG2G0D7VhtUYvKL/M=
2.META-INF/别名大写.SF 这个文件能看到使用的签名的版本,
Signature-Version: 1.0
SHA1-Digest-Manifest-Main-Attributes: KI6po0uU82r32wfwefeejM=
Created-By: 1.6.0_45 (xxx inc.)
SHA1-Digest-Manifest: nlbP4444444447QngII=
3.META-INF/别名大写.RSA
下面的文件会被签名,
assets/
res/
lib/
classes.dex
等文件