Mac OS Flutter build appbundle failed: Invalid keystore format

2,290

I just have the same error. I had installed JDK from https://docs.oracle.com/en/java/javase/15/install/installation-jdk-macos.html#GUID-2FE451B0-9572-4E38-A1A5-568B77B146DE but it wasn't necessary since Android Studio have it, so I uninstalled it.

I used the next command in terminal

/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

I recommended to use the command

flutter doctor -v

to check java path 'Java binary at:' enter image description here

Share:
2,290
Faiz Fareed
Author by

Faiz Fareed

Currently I am working as a Scrum Master and managing two teams consisting of 5 to 7 people(including developers, designers, and business consultants) in each team. I am an iOS Developer, with 5+ years for iOS apps development, Hence continuing iOS development skills along with my current job. Earlier I was working as a web developer for 3 years and before that I was working as adobe flash developer & Designer for 4 years.

Updated on December 01, 2022

Comments

  • Faiz Fareed
    Faiz Fareed over 1 year

    since a week I am trying to create android app bundle from a flutter app and I've followed from Create an upload keystore given official flutter website

    in Mac OS I've tried following command in terminal

    keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
    

    it prompted me to Enter keystore passwordand which I've write android and then Re-enter new password:android after that sequence of questions and answers which I've filled up like as your first and last name?, What is the name of your organizational unit?, What is the name of your organization?, What is the name of your City or Locality?, What is the name of your State or Province?, What is the two-letter country code for this unit?, and finally asked about the information is correct which I replied yes, it made .jks file while prompting like this

    Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,000 days
        for: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
    [Storing /Users/faizfareed/upload-keystore.jks]
    

    after that I've Created a file named [project]/android/key.properties that containing a reference to the keystore with following info in the file

    storePassword=android
    keyPassword=android
    keyAlias=upload
    storeFile=/Users/faizfareed/upload-keystore.jks
    

    finally I've Configured gradle [project]/android/app/build.gradle file.

    Added the keystore information from properties file before the android block:

       def keystoreProperties = new Properties()
       def keystorePropertiesFile = rootProject.file('key.properties')
       if (keystorePropertiesFile.exists()) {
           keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
       }
    
       android {
             ...
       }
    

    Loaded the key.properties file into the keystoreProperties object.

    Replaced the buildTypes block:

    buildTypes {
           release {
               // TODO: Add your own signing config for the release build.
               // Signing with the debug keys for now,
               // so `flutter run --release` works.
               signingConfig signingConfigs.debug
           }
       }
    

    With the signing configuration info:

    signingConfigs {
           release {
               keyAlias keystoreProperties['keyAlias']
               keyPassword keystoreProperties['keyPassword']
               storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
               storePassword keystoreProperties['storePassword']
           }
       }
       buildTypes {
           release {
               signingConfig signingConfigs.release
           }
       }
    

    finally when I executed flutter build appbundle command, it giving error like this one

    faizfareed@Faizs-MBP building_apk % flutter build appbundle 
    
    Building without sound null safety
    For more information see https://dart.dev/null-safety/unsound-null-safety
    
                                                                            
    FAILURE: Build failed with an exception.                                
                                                                            
    * What went wrong:                                                      
    Execution failed for task ':app:signReleaseBundle'.                     
    > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
       > Failed to read key upload from store "/Users/faizfareed/upload-keystore.jks": Invalid keystore format
                                                                            
    * Try:                                                                  
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
                                                                            
    * Get more help at https://help.gradle.org                              
                                                                            
    BUILD FAILED in 7s                                                      
    Running Gradle task 'bundleRelease'...                                  
    Running Gradle task 'bundleRelease'... Done                         7.8s
    Gradle task bundleRelease failed with exit code 1
    

    for reference I am also attaching Image of the terminal

    enter image description here

    I've also tried following solution but nothing works for me

    Can anyone help me out from this error Invalid keystore formate