Home:ALL Converter>apksigner - Invalid keystore format

apksigner - Invalid keystore format

Ask Time:2018-11-09T06:28:31         Author:Fritz

Json Formatter

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.

Author:Fritz,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/53217117/apksigner-invalid-keystore-format
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
yy