使用命令对 .apk 包进行签名

基于项目加密的要求,在使用外部加密工具后,apk 原有的签名会被消除,所以需要对加密后的 apk 进行重新签名。


签名步骤如下:

1、使用 cmd 进入 JDK 安装目录下的 bin 子目录
cd F:\Android\SdkJdk\jdk\bin
2、将 .keystore 文件和需要添加签名的 .apk 文件拷贝到 bin 目录下
3、执行以下命令进行签名
// 其中 updatexxx.apk 是签名后的 apk 包名,xxx.apk 是当前没有签名的 apk 包名
// Key.keystore 是当前证书的路径,如果将证书放在 bin 目录下,则就是证书的文件名
// keyname 是该证书的别名,如果没有填写正确就会在签名时报错 “找不到证书链”
jarsigner -verbose -keystore Key.keystore -signedjar updatexxx.apk xxx.apk keyname
-verbos: 指定生成详细输出
-keystore: 指定数字证书存储路径
-signedjar: 该选项的三个参数为:签名后的 apk 包名、未签名的 apk 包名、数字证书别名

签完名后的 apk 会直接直接生成在当前的 bin 目录下。

4、使用 Zipalign 进行优化

使用 android sdk 中的 Zipalign 对签名完成后的 apk 文件进行优化,关于 Zipalign 的介绍可以参考这篇文章
我这里的 Zipalign 位于 F:\Android\SdkJdk\android-sdk-windows\build-tools\29.0.2 这个位置,所以需要将签名完成后的 .apk 文件移动到这个目录下。
之后在 cmd 使用如下命令

// 进入对应的目录
cd F:\Android\SdkJdk\android-sdk-windows\build-tools\29.0.2
// 对签名 apk 进行优化
zipalign -f -v 4 UpdateKeyStore.apk New.apk
-f:指定强制覆盖已有文件
-v:指定生成详细输出
4:指定档案整理基于的字节数,一般是 4,也有基于 32 位的
UpdateKeyStore.apk:优化前的 apk
New.apk:优化后的 apk

在优化完成后,就可以将 New.apk 这个安装包对外发布了。


参考文章:

1、命令行jarsigner签字和解决找不到证书链错误
2、android 签名工具 autoSign jarsigner
3、怎么使用命令对APK包进行签名

猜你喜欢

转载自blog.csdn.net/EverNess010/article/details/114630571