As described in https://developer.android.com/studio/publish/app-signing#signing-manually I try to sign an app in git bash on windows 7.
I generate a keystore with
keytool -genkey -v -keystore my-release-key.jks
-keyalg RSA -keysize 2048 -validity 10000 -alias my-alias
this should use the default keystore type which should be fine.
Then I run zipalign
zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
which gives "Verification succesful" (with one s)
and finally I run apksigner which gives me the error:
"C:\....\apksigner.bat" sign --ks my-release-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk
Keystore password for signer #1:
123456
Failed to load signer "signer #1"
java.io.IOException: Invalid keystore format
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:658)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:56)
at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224)
at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:70)
at java.security.KeyStore.load(KeyStore.java:1445)
at com.android.apksigner.ApkSignerTool$SignerParams.loadPrivateKeyAndCertsFromKeyStore(ApkSignerTool.java:613)
at com.android.apksigner.ApkSignerTool$SignerParams.loadPrivateKeyAndCerts(ApkSignerTool.java:555)
at com.android.apksigner.ApkSignerTool$SignerParams.access$200(ApkSignerTool.java:509)
at com.android.apksigner.ApkSignerTool.sign(ApkSignerTool.java:215)
at com.android.apksigner.ApkSignerTool.main(ApkSignerTool.java:89)
I also tried different storetypes like pkcs12 which is not supported at all (gives: java.io.IOException: parseAlgParameters failed: PBE AlgorithmParameters not available)
So my question is how to find out the right storetype? I din't find anything about this in the help nor the internet.
This issue might happen if you generate keystore with newer JDK and then verify it with an older JDK. In my case: I generated keystore with java 16 and built app with App Center which verifies on java 8 (I think).
Try to find out where your keytool comes from (which keytool on Linux, Get-Command keytool in Powershell).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With