1) In case of Signature Versions v2 option was selected when building an app. (APK Signature Scheme v2)
2) In case of targetSdkVersion was set higher than 30 when building an app
It is V2 version in case 'V2 (Full APK Signature)' is checked in the 'Generate Signed Bundle or APK'
java -jar [apksigner.jar Path] verify -v --print-certs [Apk’s Path before applying LIAPP]Ex) C:\>java -jar D:\android\sdk\build-tools\28.0.0\lib\apksigner.jar verify -v --print-certs C:\app-release.apk
zipalign -f -v 4 "apk file Path that needs zipalign" "apk file Path that will be saved after zipalign-ing "
[ Windows ]
java -jar [APKSIGNER_PATH] sign -v --out [SAVED_APK_PATH] --ks [KEYSTORE_PATH] --ks-key-alias [ALIAS_NAME] [APK_FILE_PATH]
[ MAC ]
[APKSIGNER_PATH] sign -v --out [SAVED_APK_PATH] --ks [KEYSTORE_PATH] --ks-key-alias [ALIAS_NAME] [APK_FILE_PATH]
1) Check SDK path in the Android Studio
Tool menu => SDK Manager => Android SDK Location path check
2) Check Apksigner file from the SDK directory
SDK Directory => build-tools directory =>buildToolsVersion directory =>lib directory =>check apksigner.jar file
In case of MAC, check apksigner file from the buildToolsVersion directory
Keystore password for signer #1:
Key "KEY_NAME" password for signer #1:
[ Windows ]
java -jar [APKSIGNER_PATH] sign -v --out [SAVED_APK_PATH] --ks [KEYSTORE_PATH] --ks-pass pass:"keystore_password" --key-pass pass:"key_password" --ks-key-alias [ALIAS_NAME] [APP_FILE_PATH]
[ MAC ]
[APKSIGNER_PATH] sign -v --out [SAVED_APK_PATH] --ks [KEYSTORE_PATH] --ks-pass pass:"keystore_password" --key-pass pass:"key_password" --ks-key-alias [ALIAS_NAME] [APP_FILE_PATH]
[ Windows ]
java -jar [APKSIGNER_PATH] verify -v --print-certs [APP_FILE_PATH]
[ MAC ]
[APKSIGNER_PATH] verify -v --print-certs [APP_FILE_PATH]
[ Bat file for Window users]
[ Sh file for MAC users]
KeyStorePath="Keystore Path"
ALIAS_NAME="Alias Name"
STORE_PASS="Keystore Password"
KEY_PASS="Key Password"
ZIP_ALIGN="zipalign file path"
APKSIGNER_PATH="apksigner file path"
Ex. /Users/username/Downloads/LIAPP_apksign_mac.sh /Users/username/AndroidStudioProjects/MyApplication/app/release/app-release.apkWhen you see ‘Permission denied’ message on Mac, you can give a permission to run as below.
Ex. chmod +x /Users/username/Downloads/LIAPP_apksign_mac.sh
This post will be explaining how to manually sign Android APK and AAB (ANDROID APP BUNDLE) files using jarsigner.
Read More