Skip to content

Flutter App Release Playbook

Releasing a Flutter app isn’t necessarily simple. There are a hundred and one things to remember related to signing your app, creating app store assets, distributing the app, and more.

First, create your upload keystore using the following command:

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

I usually store the signing key in the same project where it is used and add the keys directory to my .gitignore 💙.

Next, follow the steps listed here to configure app/build.gradle 💙.

Create a new file at [project]/android/key.properties and fill it in. For example:

storePassword=password
keyPassword=password
keyAlias=alias
storeFile=../keys/my-keystore.jks

For the first release, use the flutter CLI. The flutter build command defaults to using the release build configuration. To create a release build, run the following command:

Terminal window
flutter build appbundle

For subsequent releases, run the Fastlanes:

Terminal window
cd android
fastlane internal

If you’d like to send the app to testers before it is available on the app stores, you can do so using Firebase App Distribution.

You can distribute APKs without creating an app in the Google Play console. To start, build the .apk:

Terminal window
flutter build apk

Then, drag the APK from build/app/outputs/flutter-apk/app-release.apk into the app distribution page in the Firebase console.

You can also distribute app bundles to users, but the setup is more involved. Namely, you need to link your Firebase project to your Google Developer Console.

First, build the app bundle:

Terminal window
flutter build appbundle

Then, upload the build/app/outputs/bundle/release/app-release.aab file to the internal testing track in the Google Play console (this is required to distribute app bundles via Firebase).

Create a new service account for Fastlane if you don’t have one already.

In the android/fastlane/Appfile file, update the json_key_file and package_name entries to match your project’s values.

SpecValue
Icon Size512 x 512 px
Feature Graphic Size1024 x 500 px
Phone Screenshot Size9:16 Aspect Ratio
7-inch Tablet Screenshot Size9:16 Aspect Ratio
10-inch Tablet Screenshot Size9:16 Aspect Ratio

Screenshots must be PNG or JPEG, up to 8 MB each, 16:9 or 9:16 aspect ratio, with each side between 320 px and 3,840 px

You can use the Device art generator provided by Google to create nice looking mockups.

Your app icon must be a PNG or JPEG, up to 1 MB, 512 px by 512 px, and meet our design specifications and metadata policy

I typically use icon.kitchen to create my app icons. Once I’ve downloaded the assets, I then follow the instructions in this Stack Overflow answer to add the icons to my app using Android Studio.

For the first release:

Terminal window
flutter build ipa

For subsequent releases, run the Fastlanes:

Terminal window
cd ios
fastlane beta

In the ios/fastlane/Appfile file, update the app_identifier, apple_id, itc_team_id, and team_id entries to match your project’s values.

Next, create an app-specific password and add it to the .env.default file in the ios/fastlane directory (source):

FASTLANE_USER=<Apple USER ID>
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD=<App-Specific Password>
SpecValue
Icon Size1024 x 1024 px
Feature Graphic Size1024 x 500 px
5.5-inch Phone Screenshot Size1242 x 2208 px
6.5-inch Phone Screenshot Size1284 x 2778 px
12.9-inch iPad Screenshot Size2048 x 2732 px

Devices for screenshots:

  • 6.5 inch - iPhone 14 Pro Max
  • 5.5 inch - iPhone 8 Plus
  • iPad Pro (3rd gen) - iPad Pro (12.9 inch)
  • iPad Pro(2nd gen) - iPad Pro (12.9 inch)

App store icons should be 1024x1024 px and according to the Apple docs:

You can let the system automatically scale down your 1024x1024 px app icon to produce all other sizes

To do this, navigate to the Assets section under Runner/Runner in XCode and press the ”+” icon. Select IOS and then IOS App Icon. This will add an “AppIcon” asset to the project. You can drag a file from your finder onto one of the slots to update the launcher icon.

App Store Icon

I use this Figma file for creating 2D mockups.

  1. Double-click the center of a device and then select the Image button in the “Fill” section on the sidebar.
  2. Choose your image.
  3. Select the device frame.
  4. Scroll all the way down in the sidebar to the “Export” section and export your image.

Google Play Badges

Get it on Google Play

Apple App Store Badges

Download on the App Store