Debug School

rakesh kumar
rakesh kumar

Posted on

How to generate keystore(key) and build Apk in Flutter || build release Apk

How to generate keystore(key) and build Apk in Flutter
docs.flutter.dev

Step 1
Image description

Step 2
Image description

Step 3
Image description

Step 4

Configure signing in gradle
Configure gradle to use your upload key when building your app in release mode by editing the [project]/android/app/build.gradle file.

Add the keystore information from your properties file before the android block:

content_copy

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

   android {
Enter fullscreen mode Exit fullscreen mode

Step 5
Configure gradle to use your upload key when building your app in release mode by editing the [project]/android/app/build.gradle file.
And replace it with the following 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
       }
   }
Enter fullscreen mode Exit fullscreen mode

*Step 6 *
Create key.properties file into the keystoreProperties object

Reference the keystore from the app
Create a file named [project]/android/key.properties that contains a reference to your keystore:

storePassword=
keyPassword=
keyAlias=upload
storeFile=/upload-keystore.jks>

Image description

Build an APK

Although app bundles are preferred over APKs, there are stores that don’t yet support app bundles. In this case, build a release APK for each target ABI (Application Binary Interface).

If you completed the signing steps, the APK will be signed. At this point, you might consider obfuscating your Dart code to make it more difficult to reverse engineer. Obfuscating your code involves adding a couple flags to your build command.

From the command line:

Run flutter build apk --split-per-abi
(The flutter build command defaults to --release.)
This command results in three APK files:

[project]/build/app/outputs/apk/release/app-armeabi-v7a-release.apk
[project]/build/app/outputs/apk/release/app-arm64-v8a-release.apk
[project]/build/app/outputs/apk/release/app-x86_64-release.apk
Enter fullscreen mode Exit fullscreen mode

Removing the --split-per-abi flag results in a fat APK that contains your code compiled for all the target ABIs. Such APKs are larger in size than their split counterparts, causing the user to download native binaries that are not applicable to their device’s architecture.

Top comments (0)