Automatically Signing Flutter Apps with a Keystore

Copy the Key File to the Android Directory:

Place the .jks keystore file in your android directory. For example:

android/key17.jks


Create a keystore.properties File:

Inside the android directory, create a new file named keystore.properties (this name is common, but you can use a different one if desired). In this file, add the following contents:

storePassword=123456
keyPassword=123456
keyAlias=key17
storeFile=../key17.jks
Note: Ensure that the keyAlias matches the alias used when creating the key, and that the passwords are correct.



Add Configuration in build.gradle:

In the android folder, open the build.gradle file and load the keystore.properties file before the android block:

def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))


Set Up Signing Information in build.gradle:

Add the signing configuration inside the android block, referencing the values from the keystore.properties file:

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


Rebuild Your App:

Once the configuration is complete, rebuild your app using:

flutter build apk --release