获取keystore的别名:
keytool -list -v -keystore keyStore的绝对路径 -storepass 密码
keytool -alias //获取别名
命令行V1签名命令:
jarsigner.exe -verbose -keystore keystore的绝对路径 -signedjar 签名输出apk绝对路径 待签名apk绝对路径 keyStore别名
Demo:
jarsigner.exe -verbose -keystore C:\Users\dell\Desktop\jiagu\xxx.keystore -signedjar C:\Users\dell\Desktop\output_signed.apk input.apk alias
命令行V2签名命令:
1)把目录切换到SDK的build-tools目录下 D:\android-sdk\build-tools\28.0.3
2)zipalian.exe zip对齐
zipalign.exe -v -p 4 input.apk output.apk
-f : 输出文件覆盖源文件
-v : 详细的输出log
-p : outfile.zip should use the same page alignment for all shared object files within infile.zip
-c : 检查当前APK是否已经执行过Align优化。
另外上面的数字4是代表按照4字节(32位)边界对齐。
Demo:
zipalign.exe -v -p 4 C:\Users\dell\Desktop\input.apk C:\Users\dell\Desktop\output_zip.apk
3)把目录切换到apksigner.jar所在目录 D:\android-sdk\build-tools\28.0.3\lib
4)apksigner
java -jar apksigner.jar sign //执行签名操作
–ks 你的jks路径 //jks签名证书路径
–ks-key-alias 你的alias //生成jks时指定的alias
–ks-pass pass:你的密码 //KeyStore密码
–key-pass pass:你的密码 //签署者的密码,即生成jks时指定alias对应的密码
–out output.apk //输出路径
–input.apk //被签名的apk
Demo:
java -jar apksigner.jar sign --ks key.jks --ks-key-alias releasekey --ks-pass pass:pp123456 --key-pass pass:pp123456 --out output.apk input.apk