Publish Flutter App to Play Store 2024

Affan Minhas
Blocship
Published in
14 min readMar 24, 2024

Congratulations!! 🥳 on completing your Flutter app! Now it’s time to share your creation with the world by publishing it on the Google Play Store.

In this guide, we’ll walk you through the step-by-step process of preparing your app for publication and navigating the Google Play Console to make your app available to millions of users.

Prepare Your Flutter App for Release

Before you can publish your app on the Google Play Store, you need to ensure that it is ready for release. Here are some key steps to prepare your Flutter app:

Step 01: Set App Launcher Icon

Before publishing to play store your app must have a icon for unique identification. The launcher icon look like as:

Launcher Icon Example

You see how the Gmail App Icon look like same as it is your flutter app must have an icon. How can you generate it? 🤔 If you have your app logo and wanna make that logo as app icon so just do these steps:

First go to this website that allows you to check how your logo will look like to the android and iOS device.

https://icon.kitchen/i/H4sIAAAAAAAAA6tWKkvMKU0tVrKqVkpJLMoOyUjNTVWySkvMKU6t1VHKzU8pzQHJRisl5qUU5WemKOkoZeYXA8ny1CSl2FoApT8%2BHkAAAAA%3D

If you have your app logo then you can select the image and upload your app logo and can see how it’s look like.

After that you can download it from there. It will download the Zip file. Just open the zip file and go to android folder and copy the folder as shown:

Now, you need to paste these folders in your flutter project. Open your flutter project and go to android folder to res as shown:

That’s it your app icon is changed now. You can test it by running your flutter project.

Step 02: Set App Name

Your app name is one for which users will identify it. The app name look like as:

App Name Example

Like Gmail is the name for this app. How you can change it? 🤔 Just go to the flutter project and to the AndroidManifest.xml and change it like this:

That’s it your app name is changed now. You can test it by restart the app.

Step 03: Build & Release App

In this step you need to Sign your app to release it into play store. For that lets go to your flutter project and follow these simple steps:

Create file key.properties

Now paste this code inside your key.properties file.

storePassword=<password-from-previous-step>
keyPassword=<password-from-previous-step>
keyAlias=upload
storeFile=<keystore-file-location>

Now you can define any password of your choice but make it sure you should not share it to any one. It would look like now as:

storePassword=MyFlutterApp
keyPassword=MyFlutterApp
keyAlias=upload
storeFile=<keystore-file-location>

Next step is to create an upload keystore.

If you are using Mac or Linux so copy this command below:

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

Or If you are using windows then copy this command below:

keytool -genkey -v -keystore %userprofile%\upload-keystore.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload

At %userprofile% you must provide the path to store this file. Like in my case I provide it C:\Users\AFFAN MINHAS and also you need to wrap it in quotation marks.

Your updated command for windows would look like:

keytool -genkey -v -keystore "C:\Users\AFFAN MINHAS\upload-keystore.jks" -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload

Make sure you paste the right command not to face any error. After that it will say to enter the keystore password where you will enter the same password you set on your key.properties file. After that it would required some basic details that you need to enter to complete this process. I have done this for your reference see below.

The info given here is temporary so make sure you provide right info according to yours. If you done all good then the upload-keystore.jks would be downloaded to your specified location.

Now copy the upload-keystore.jks file and paste it into android/app folder and also update the right path into your key.properties file as below:

Now we need to configure signing in gradle of your flutter project.

Just go to the [project]/android/app/build.gradle file of your project and paste the following code above the android tag:

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

Your gradle file should look like this after adding this code:

Then you need to copy this code and again go to the gradle file on very bottom to paste there:

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

Make sure this complete code should be pasted there as you find the previously written buildTypes tag so overwrite completely and paste it. You gardle should look like after pasting it:

Now the configuration is completed and it’s time to build the app bundle by running the following commands. First open the terminal and go to your root project like this:

After that run these commands one by one:

  1. flutter clean
  2. flutter pub get
  3. flutter build appbundle

After successful execution it will generate the .aab file to the location build\app\outputs\bundle\release\app-release.aab for your project.

Now, for the security purpose we don’t push these key.properties and upload-keystore.jks file to github. To do this you need to put it into .gitignore file that make this happen.

This step is very important because if any one have access to your key or keystore so they can upload a new app version to Play Store and can override your app version that you have uploaded.

Step 04: Publish to Play Store

Now, your app bundle is reading so the final step to publish it to play store. For that it is necessary that you have developer account of google play console. First go and create developer account from here:

After that you need to pay the one time fees that is:

After successful registration you will have your developer account where you can upload your apps.

If you are working for a client so you need ask a access on your mail account so that can upload the app for them.

Go to your console: https://play.google.com/console

Now let’s start publishing your app. First create an app as shown:

After that provide the information according to your app. I am giving you just an example of putting data.

  • Name your app whatever you want.
  • Select the default language of your app.
  • Select whether it is just an app or any gaming app.
  • Make sure if you are making your app free this time so you would never change it into future so decide it accordingly.
  • And, obviously you need to check the declarations.

By this your app is created successfully. Now you need to start the configuration by providing your app details.

  • Just go to the store settings tab.
  • Provide if it is app or game.
  • Select the right category of your app.
  • Then select the correct tags that your based on. You can select up to 5 tags.
  • Then provide the contact details where all app related notification will receive. It includes the app launches details or etc.
  • After that provide the necessary app details
  • Now scroll down and you need to provide your app icon and make sure the dimention and size as listed here:
  • Now you need to provide the feature graphics of your app which will show as cover photo of your store listing.
  • Now you need to provide the screen shots of phone screen where 2 is the minimum and 8 is the the maximum.
  • You can also provide the video link to showcase your app.
  • You are also needed to provide the screen shots of 7-inch tablets and 10-inch tablets. You can provide the same screen shots to these if you don’t have specifically for it.

Now there are list of tracks where you can upload your app. There are follows:

All Uploading Tracks

Let’s say we are uploading for public rating so we choose the production track.

  • Go to production tab and then create new release.
  • Now you will have to choose the signing key.
  • Then choose google-generated key.
  • Now you need to upload the app bundle which we have created in start. can find your bundle on your project location.
  • In my case the path is:
  • D:\FlutterProjects\[project_name]\build\app\outputs\bundle
  • After that you can enter the message for this release like if you have new updates and features so can show as message here.
  • Now you would be facing some errors like shown
  • Let resolve it to finally rollout this app.
  • Click back on production tab and go to select the contries and region for where your app will be available. You can select or de-select any if you don’t want your app there.
  • Now you need to select the countries. If you want all so simply select all from there and save it.
  • After that go down on action tab and find app content tab where you need to provide the further declaration for this app.
  • Here you need to provide the URL hosted on any where that shows your app privacy policy.
  • In simple we can create a GitHub repository and create a simple file here and provide the URL here. Let’s see how we can do that.
  • Follow the URL where you find the dummy template of the privacy policy just copy it from there:
  • Copy the template from there:
  • After that you need to create repository into your GitHub account so for that just go to https://github.com and create a repository there.
  • Give name to your repository and make sure you select it to public so that any one can see it.
  • After that just create a new file from there:
  • Then paste the content and edit it and finally save it.
  • After that copy the path to repository and paste it there where privacy policy URL was needed.

Now save it to clear this step and get back from it with the arrow above.

  • Now you need to tell whether your app contains ads or not? go to ads declaration by clicking start Start declaration:

After that choose according to your app whether contains ads or not.

Now save it to clear this step and get back from it with the arrow above.

  • Now you need to tell whether your app can be access completely or some part needs special access.

Do according to your app if all functionality is accessible without any restriction or not.

Now save it to clear this step and get back from it with the arrow above.

  • Now its time to tell the content rating and start the questionnaire

You need to give the email address and category as:

Then do answer these questionnaire according to your app and go next:

After that there would be the summary of what you have selected just save it after review.

Now save it to clear this step and get back from it with the arrow above.

  • After that you need to tell your target audience:

Select it according to your app and then save it.

Then you need tell whether your app any personal data or not. Do save and save.

If you want your app to be tested by teachers so you can apply for it then hit save.

Then finally save it and clear this step and get back from it with the arrow above.

  • Now you need to tell whether your app is a news app or not.

Choose according to your app purpose.

Now save it to clear this step and get back from it with the arrow above.

  • After that you need to tell if your app is a COVID-19 contact tracing or status app or other.

Choose according to your app.

Now save it to clear this step and get back from it with the arrow above.

  • After that you need to tell about your app’s privacy and security practices.

Provide these details and hit next.

Then finally save it and clear this step and get back from it with the arrow above.

  • After that you need to tell whether your app uses advertising ID or not.

Choose according to your app.

Now save it to clear this step and get back from it with the arrow above.

  • After that you need to tell whether your app is government property or not.

Choose according to your app.

Now save it to clear this step and get back from it with the arrow above.

  • After that you need to tell the financial feature of your app

Choose according to your app.

Now save it to clear this step and get back from it with the arrow above.

After completing all these declaration get back to the production tab and go to the edit release.

Then check every details and click on next.

After that save it and go to overview.

Now, finally send these changes to google for review.

Now, if you come to all app section so you would see the app sent for review 😍

Finally you did it!🥴 your app is sent for review and it would take around 48 hours to give you any response. Make sure if your app uses user current location or these type of features so google will ask to provide the valid details for accessing it.

If you face any difficulty for doing it you can reach me out through linkedIn or can run through email. I would be happy to help you on it. Don’t forget to clap if you really like and it helps you. Thank You!

Support me 👈

Follow me & Connect:

LinkedIn: https://www.linkedin.com/in/affan-minhas/

GitHub: https://github.com/affanminhas

Email: affanminhasdev@gmail.com

--

--