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.
What works for me is that you don't need to align it. Just upload it to Google and it should be fine.
apksigner sign --ks application.keystore app-release-unsigned.apk
So the solution is to ignore zipalign
Since this might be a mess. try to rebuild you apk again just in case you have signed it already to avoid multiple signatures.