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.
Samuel :
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).\nTry to find out where your keytool comes from (which keytool on Linux, Get-Command keytool in Powershell).",
2021-06-25T08:20:42
Ayman Salama :
What works for me is that you don't need to align it. Just upload it to Google and it should be fine. \napksigner sign --ks application.keystore app-release-unsigned.apk\n\nSo the solution is to ignore zipalign\n\nSince this might be a mess. try to rebuild you apk again just in case you have signed it already to avoid multiple signatures. ",
2018-12-20T12:03:34
fikkatra :
I know it's not the case for the OP, but for those of you who stumble upon this page when getting the Invalid keystore format error in App Center: using a .jks file rather than a .keystore file fixed the issue for me. I followed these instructions to create one via Android Studio.",
2022-07-28T10:12:39
Sufiyan Umar :
I faced this issue when I reinstalled VS 2019 to run my existing xamarin forms app.\nJust follow these steps to make it work:\n\nCreate a new simple xamarin forms app.\nDelete existing debug.keystore file from "C:\\Users\\YourUser\\AppData\\Local\\Xamarin\\Mono for Android".\nRun and deploy the app you just created on a device (this will create fresh debug.keystore file)\nNow run your existing app\n\nHappy coding :)",
2022-08-20T18:53:15