build:android failed - Execution failed for task ':app:signReleaseBundle'.

My android build started failing with the above error at some point. Unfortunately, I don’t remember what was the initial cause of it.

In any case, I tried running expo build:android -c and it finishes successfully. But when I replace the keystore using expo credentials:manager with the one that I have backed up (a .jks file) - I get the above error again.

It feels like expo is not propagating the new keystore into the build system correctly.

And yes, I checked that my keystore is valid and in the JKS format:

> keytool -list -keystore ./app.jks

Enter keystore password: *****
Keystore type: jks
Keystore provider: SUN

Your keystore contains 1 entry

app-key, Feb 8, 2021, PrivateKeyEntry,
Certificate fingerprint (SHA1): 68:...:73

Warning:
The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore ./zohar-reader.jks -destkeystore ./zohar-reader.jks -deststoretype pkcs12".

EXPO CLI DIAGNOSTICS:

Expo CLI 4.3.2 environment info:
    System:
      OS: macOS 10.15.7
      Shell: 5.7.1 - /bin/zsh
    Binaries:
      Node: 12.18.0 - ~/.nvm/versions/node/v12.18.0/bin/node
      npm: 7.6.3 - ~/.nvm/versions/node/v12.18.0/bin/npm
    Managers:
      CocoaPods: 1.10.0 - /usr/local/bin/pod
    SDKs:
      iOS SDK:
        Platforms: iOS 14.4, DriverKit 20.2, macOS 11.1, tvOS 14.3, watchOS 7.2
      Android SDK:
        API Levels: 30
        Build Tools: 30.0.2
        System Images: android-30 | Google APIs Intel x86 Atom, android-30 | Google Play Intel x86 Atom
    IDEs:
      Android Studio: 4.1 AI-201.8743.12.41.7042882
      Xcode: 12.4/12D4e - /usr/bin/xcodebuild
    npmPackages:
      expo: ^40.0.1 => 40.0.1
      react: 16.13.1 => 16.13.1
      react-dom: 16.13.1 => 16.13.1
      react-native: https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz => 0.63.2
      react-native-web: ~0.13.12 => 0.13.18
    npmGlobalPackages:
      expo-cli: 4.3.2
    Expo Workflow: managed

keytool output is showing that there is alias app-key in there, but in your latest build is trying to access alias zreader-key. Are you sure you passed the correct value there?

Yes, the alias is zreader-key, I just redacted it in the post )
If you wish, I can send the .jks file to you to see if it’s correct.

If alias is correct there is a possibility that alias password is incorrect. You can verify it with any keytool command that requires that password e.g. keytool -changealias

You can also check output of expo fetch:android:keystore whether file and values printed to the terminal match what you provided in credentials manager

2 Likes

You’re absolutely right, I did make a mistake in the alias password when I submitted the Keystore to the credentials manager. I was able to recover the password, resubmit the Keystore and now the build passes without any issues. Thanks a lot! :slight_smile:

Although, it is kind of unexpected behaviour that the credentials manager doesn’t check the alias password and just submits it to the build system as is.