V2级签名 与 四字节对齐
一、V2签名
之前使用keytools + jarsigner 对APK进行签名,属于V1签名
直到后面遇到了这种问题
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Scanning Failed.: No signature found in package of version 2 or newer for package com.silence.scoreboard]
报错原因是,我的手机是Android 11版本的,而Android 11版本之后必须使用V2或更高版本签名
我的解决方法是使用ApkSigner进行V2签名
参考微软官方文献:
#keytool -genkeypair -v -keystore <filename>.keystore -alias <key-name> -keyalg RSA \ # -keysize 2048 -validity 10000 1、keytool -genkeypair -v -keystore xample.keystore -alias publishingdoc -keyalg RSA -keysize 2048 -validity 10000 #若要列出存储在密钥存储中的密钥,请使用 keytool 和 – #list 选项:keytool -list -keystore xample.keystore #使用 Zipalign 优化 APK 2、zipalign -f -v 4 helloworld-unsigned.apk Shengchenghelloworld.apk #对APK进行签名 3、 apksigner sign --ks xample.keystore --ks-key-alias publishingdoc Shengchenghelloworld.apk
二、四字节对齐
Android要求apk文件四字节对齐,不然就报错,很是傲娇
解决方法:
1、四字节对齐: zipalign -f -v 4 helloworld-unsigned.apk OutPut.apk 2、检测四字节对齐 zipalign -c -v 4 output_unsigned.apk