最近工作中遇到要把之前的测试版本签上公司的签名,而代码已更新,只能用测试的apk重新签名,经过百度,以及自己的尝试,终于成功。
由于eclipse自动运行生成的apk已经默认签上了高度签名,所以直接用jarsigner无法给apk签名。
经过尝试,步骤总结如下:
android安装包为123.apk,签名文件为iiot.keystore
1、将123.apk改为123.zip,用压缩工具打开123.zip,删除其中的META-INF目录,然后将123.zip改为123.apk
2、将步骤1中的123.apk与iiot.keystore复制到c:\keystore文件夹(复制到哪自己定)
3、打开命令行窗口,切换到c:\keystore
4、用下面的命令签名:
jarsigner -verbose -keystore iiot.keystore -signedjar signed.apk -digestalg SHA1 -sigalg MD5withRSA CloudWindow_machtalk.apk iiot
点击enter键后输入签名文件密码即可。
注:红色命令参数是必须的,百度上查找的方法大多没有,签名后无法安装,绿色参数为签名文件名字及别名