最近对一个2年前项目做适配,发现部分手机出现apk解析失败,于是在网上大量研究发现,需要用到jarsigner工具签名,在签名时,要加上2个参数:
复制代码代码如下:
-digestalg SHA1 -sigalg MD5withRSA
造成无法签名错误的原因,初步估计是JDK版本的问题。JDK 1.6签名没事,但是1.7会出这个问题。
完整的签名命令如下:
打开cmd命令提示符,切换至JDK目录下的个性的大门文件夹中,输入如下代码
复制代码代码如下:
jarsigner -verbose -keystore 秘钥文件 -storepass feelyou.info -signedjar 新App名.apk -digestalg SHA1 -sigalg MD5withRSA 未签名.apk 别名
解释:
1、-keystore feelyou.keystore:指定需要使用的签名文件,直接写文件名说明在当前目录下,否则请自行指定具体路径
2、-storepass feelyou.info:自动输入密码,keystore的密码和alias的密码都是我用的都是feelyou.info(可不写)
3、-signedjar 新App名.apk:指定签名后的文件存储路径,这里是说以'新App名.apk'的文件名存在当前路径下
4、-digestalg SHA1 -sigalg MD5withRSA:这就是必须加上的参数,如果你是jdk 1.6也不受影响
5、未签名.apk:未签名的apk路径文件
6、别名:最后这个是alias