ionic android apk签名以及重签名

2019-10-06  本文已影响0人  小圈儿33

1.使用keytool 生成数字证书

keytool -genkey -v -keystore myApp.keystore -alias myApp.keystore -keyalg RSA -validity 36500


执行该命令过程会要求输入密钥口令以及其他信息,看着填就行。

2.使用jarsigner为app签名

jarsigner -verbose -keystore myApp.keystore -signedjar /Users/*****/myApp.apk  /Users/*******/android-release-unsigned.apk myApp.keystore


3.由于ionic cordova build android命令打包出来的apk文件已经被默认的debug.keystore文件签名过了,所以在用以上命令进行签名的时候。会报这样的错误

jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 21213 but got 20064 bytes)

这是由于对一个已经签名了的apk进行签名的原因,网上的一些方法,比如改后缀名等等,我自己测试,没有生效

后来,我执行ionic cordova build android --release,对这个命令生成的apk进行签名,才可以正常签,大概是这个apk没有默认的签名吧。

4.使用zipalign工具优化已签名的apk(非必须但建议这么做)

 zipalign -v 4 notsigned.apk signed.apk

说明:

如果命令不生效,需要cd到zipalign所在的文件夹地址,可执行一下命令

find ~/Library/Android/sdk/build-tools -name "zipalign"

然后执行./zipalign -v 4 notsigned.apk signed.apk,即可对文件进行签名,但是我对debug.apk如此操作的时候,每次签名都失败,但是对ionic cordova build android --release 生成的apk进行签名,可以签名成功,但是也不能正常安装运行。

最后,我用的3中所说的方法,签名成功了。

参考博文:https://blog.csdn.net/xqq580231/article/details/78930497

上一篇 下一篇

猜你喜欢

热点阅读