用Android Studio我们都知道是可以方便的生成有签名的apk。但是有时候我们需要利用命令来给Android签名。比如说我最近在上架的时候就遇到这种情况。
在360开放平台给app上架,360开放平台会先给应用加固,然后下载已加固的apk后,要求再次签名。这时候就不能直接用Android Studio签名,而是用命令签名。
签名有两种方式,比如用jarsigner或者apksigner的方式。
jarsigner方式只支持v1签名,apksigner方式支持v1和v2的方式。
v1和v2的区别,可以参考 https://blog.csdn.net/qq_32115439/article/details/55520012。
方式一:
jarsigner -keystore 密钥库名 xxx.apk 密钥别名
方式二:
apksigner sign --ks 密钥库名 --ks-key-alias 密钥别名 xxx.apk
上述命令,签名后没有改变文件名称。如何判断是否签名成功?可以采用如下命令。
打印签名信息命令:
keytool -list -printcert -jarfile appname.apk
通过上述命令,可以打印出签名的所有者信息,发布者,序列号,有效期等信息。
通过以上信息,即可判断出是否签名成功。