How to Release Your Flutter App on the Google Play Store

Your Flutter app is ready, and you’ve completed all the important pre-release steps. Now it’s time to publish it on the Google Play Store. But where do you start?

The Flutter documentation already provides a technical guide for building and releasing an Android app. But if you're new to the Google Play Store, there's a lot more to consider, from signing up for a developer account (and understanding the strict testing policies for new accounts), to preparing and submitting your app for review.

If you’re new to this, don’t worry. This article will provide a high-level roadmap for releasing your Flutter app on the Google Play Store. Even if you’re familiar with this process, you may discover a trick or two along the way. 👍

This article is about releasing your app on the Google Play Store. A companion article about How to Release Your Flutter App on the iOS App Store is also available.

What You’ll Learn:

  • How to sign up for a Google Play Developer Account.
  • How to create a new app on the Google Play Console.
  • How to prepare your app for review by filling all the app content, data safety, and store listing info.
  • How to review the Android project settings, including code signing.
  • How to build, upload, and submit your app for review.

Want a more detailed, hands-on guide? My Flutter in Production course includes a complete module with 17 lessons that cover each step in depth—from account setup to submission and beyond.

Let’s dive in! 🚀

Should You Sell Apps on the Google Play Store?

It's well known that Apple users are far more willing to pay for apps compared to Android users (it’s not even close), especially in premium markets like the United States.

The Play Store comes with some other drawbacks, too:

  • Strict testing requirements: Individual developers face additional friction due to mandatory closed testing requirements introduced in 2023.
  • Device fragmentation: Unlike Apple’s tightly controlled ecosystem, Android runs on a vast number of devices with varying screen sizes, hardware capabilities, and operating system versions. This leads to higher testing effort and increased maintenance overhead.
  • Privacy Concerns: For individual developers, personal information such as your legal name, address, and email may be displayed publicly on the Play Store. This raises privacy concerns, especially for solo developers who may not want their personal details exposed.

With that said, Google's Play Store is still a great platform if:

  • Your target audience is located in regions where Android has a larger market share than iOS (e.g., Asia, Africa, Latin America).
  • You’re building apps for markets where affordability and accessibility are key factors, as Android dominates mid-range and low-cost device segments.

Bottom line:

  • Individuals: If you’re starting out as a solo developer, consider prioritizing the Apple App Store. It offers better monetization potential and access to a premium audience, making it a more lucrative starting point.
  • Companies: If your business needs a presence on both platforms, publishing on both the App Store and Play Store is essential.

1. Sign Up for a Google Play Developer Account

To publish apps on the Google Play Store, you’ll need to create a Play Console developer account.

Key info:

  • Cost: one time $25 fee.
  • Who can enroll: Individuals or organizations.
  • How to enroll: Start the process at play.google.com/console/signup.
  • Fees: Google takes a 15% cut on your first $1M (USD) of yearly earnings after you enroll in an Account Group. Beyond $1M, the fee increases to 30%.

Invididual or Organization account?

The first step on the Google Play Console Signup page is to choose between enrolling as an organization or as an individual.

Before you choose, beware of the strict app testing requirements for new personal developer accounts. Quoting:

If you have a newly created personal developer account, you must run a closed test for your app with a minimum of 12 testers who have been opted-in for at least the last 14 days continuously. When you meet these criteria, you can apply for production access on the Dashboard in Play Console so that you can ultimately distribute your app on Google Play.

These requirements don't apply if you choose an organization account, or if your personal account was created before 13 November 2023.

Privacy considerations

When creating a developer account, be aware that your legal nameaddress, and contact details may be displayed publicly on Google Play (source).

  • Individual Accounts: Google displays your legal namecountry, and developer email address. If you monetize your app, your full address will also be shown.
    • Organization Accounts: Google displays your organization’s legal namelegal addressemail, and phone number to improve transparency and user safety.

    For individual developers who want to monetize their apps, this raises significant privacy concerns. To protect your personal information, consider registering a virtual business address using a service like iPostal1. However, this option comes with additional costs.

    How to Sign Up for a Google Play Developer Account

    To get started, visit this page to sign up for an organization or individual account.

    Then, complete all the steps:

    • Enter your Developer Name
    • Link a Payments Profile to verify your identity
    • Enter your email address and consent for your data to be shown on your public developer profile
    • Tell Google about you, your website, and your app publishing and monetization plans
    • Share your private contact details so Google can contact you

    If you're signing up as an organization, you'll also need to obtain a D-U-N-S Number. This process can take 1 to 30 business days, so apply as early as possible.

    Once you've agreed to the terms and purchased your membership, you'll need to complete the verification process and submit some official proof of ID and/or business registration.

    2. Create a New App on the Google Play Console

    Once your developer account is ready, you can sign in to the Google Play Console. After choosing your developer account, you'll be taken to the main dashboard:

    Google Play Console dashboard

    How to Create a New App

    Select the Home tab on the left panel, then click on Create app:

    Create a new app

    On the next page, enter all the required details:

    • App name
    • Default language for your store listing
    • Select App or Game
    • Select Free or Paid

    Then, tick the declaration boxes and click Create app.

    The App Dashboard

    After creating the app, you'll be taken to your app's dashboard:

    App dashboard

    The App Dashboard is your central hub for managing your app. It highlights important tasks like:

    • Setting up your Store Listing: Add your app's name, description, and media assets.
    • Testing and Releasing: Manage internal testing, open testing, and production releases.
    • Compliance: Ensure your app meets Google Play policies and regulatory requirements.

    3. Prepare your App For Review (App Content)

    Preparing an app for review on the Play Store is a long process and you'll need to fill in multiple pages. Let's start with the App Content and Data Safety sections.

    Set up your app (App Content)

    From your app’s dashboard, scroll down to the Set up your app section and expand the tasks:

    Dashboard - Set up your app

    Here's how to tackle them:

    • Privacy Policy: Enter your privacy policy URL.
    • App Access: If parts of your app are restricted (e.g., authentication required), provide instructions for the Google Play review team to access those areas.
    • Ads: Indicate whether your app contains ads.
    • Content Rating: Complete the content rating questionnaire to generate appropriate ratings for your app in different regions.
    • Target Audience: Specify the target age group for your app. If your app targets children, you’ll need to meet additional compliance requirements.
    • Address Specific Use Cases: Some tasks only apply to apps with specific use cases (e.g. news apps, government apps, financial features, health features). Complete the relevant sections as needed.

    Data Safety

    You'll also need to fill the data safety section, which includes 5 separate steps:

    Data safety

    Let's tackle them:

    1. Overview: The first page provides an overview of what you need to disclose.
    1. Data collection and security: Here, you’ll answer questions about how your app collects and handles user data. Answer these questions accurately based on your app’s functionality and policies.
    1. Data Types: Here, you’ll declare all the data types your app collects or shares. These are grouped into categories such as, Location, Crash logs, Device or other IDs, App activity, Personal info, Financial info, and others.
    1. Data usage and handling: For each data type you selected, you’ll need to answer questions about:
      • Purpose: Why is the data collected (e.g., analytics, diagnostics)?
      • Sharing: Is the data shared with third parties?
      • User Choice: Can users opt out of data collection?
      • Data Retention: Is the data processed ephemerally, retained temporarily, or stored long-term?
    1. Preview: The final step is to review the summary that will appear on your app’s Play Store listing. This summary helps users understand how your app collects and handles their data.

    4. Prepare your App For Review (Store Listing)

    Navigate to your app’s dashboard and locate the Manage how your app is organized and presented section under Set up your app:

    Set up your app

    Click on Select an app category and provide contact details to begin.

    Store Settings

    In the Store settings page, you’ll set up your App category and Store Listing contact details.

    • App Category:
      • Click Edit, then select App or Game and the appropriate category.
      • Click Manage tags to add up to five relevant tags that describe your app’s content and functionality. Tags improve your app’s discoverability in search results and recommendations.
    • Store Listing Contact Details:
      • Click Edit and enter your email address (required), phone number (optional), and website (optional).

    Store Listing

    The Store Listing is the public-facing page where users will discover, download, and interact with your app on the Google Play Store.

    From the app dashboard, click Set up your Store Listing and follow the steps below:

    • Listing assets
      • App name: The name displayed on the Play Store.
      • Short description: A brief, engaging snippet that appears in search results.
      • Full description: A detailed explanation of your app’s features and benefits. Use clear, concise, and engaging language.
    • App Icon and Feature Graphic: Upload your app icon (512x512 px) and feature graphic (1024x500 px). These visuals are essential for branding and grabbing users’ attention.
    • Phone and Tablet Screenshots: Upload 2 to 8 screenshots (16:9 or 9:16 aspect ratio).

    Select Countries and Regions

    Before moving on, let’s complete one more important step so you won’t forget later: selecting countries and regions where your app will be available.

    Scroll down to the Create and publish a release section at the very bottom of your app’s dashboard:

    Select countries and regions

    Click Select countries and regions to choose where your app will be available.

    5. Review the Android Project settings

    Before releasing your app, it’s essential to review your Android project settings to ensure compatibility with Google Play requirements and avoid potential errors.

    Here's a handy checklist:

    • App Icons and Launch Screen: Ensure your app has a launcher icon and a splash screen tailored for Android. The flutter_launcher_icons and flutter_native_splash packages can help with this.
    • Flavors Configuration (Optional): If you’re using flavors to manage multiple app versions (e.g., free vs. paid), verify your Android flavor settings. My Flutter in Production course includes an entire module about flavors.
    • App Manifest File: Review your AndroidManifest.xml file for required permissions and settings. For example, add <uses-permission android:name="android.permission.INTERNET"/> if your app requires internet access, and verify plugin-specific requirements (e.g., url_launcher).
    • Gradle Build Configuration: Update your android/app/build.gradle file to meet Google Play’s API level requirements:
      • Set compileSdkVersion and targetSdkVersion to 34 (Android 14).
      • Confirm minSdkVersion is set to 21 to avoid multidex requirements.

    To more easily update the Gradle settings, use this: Script to Update the Android Project Settings.

    Code signing

    Before you can release your app on the Google Play Store, it needs to be signed with a digital certificate. Code signing ensures that your app is authentic and hasn’t been tampered with after being published.

    To enable code signing, you need to:

    1. Create an upload keystore.
    2. Reference the keystore in your project.
    3. Configure Gradle for signing release builds.

    These steps are all explained in detail in the official docs:

    6. Build, Upload, and Submit your App to the Google Play Store

    After configuring code signing, it’s time to build a release version of your app and upload it to Google Play.

    Here, we'll focus on how to publish your app on the production track, so that users can download and install from the Play Store. Internal, closed, and open-testing tracks also exist, and you can use them to distribute your app to different groups of users before going live. These are covered in my Flutter in Production course.

    Step 1: Update the App’s Version Number

    Before building your app, double check the version number in the pubspec.yaml file:

    version: 0.3.4+18

    What Does This Mean?

    • 0.3.4: The version name (major.minor.patch).
    • 18: The build number (used for versioning in Google Play).

    When you build the app, these values will update the versionName and versionCode in the local.properties file on Android.

    You can also override the version name and build number during with this command:

    flutter build appbundle --build-name=0.3.4 --build-number=18

    This is useful if you’re using multiple release tracks (different app builds need to be uploaded for each testing or production track).

    Step 2: Build Your App for Release

    Google Play supports two release formats: App Bundle (AAB) (preferred) and APK.

    To build an app bundle, run:

    flutter build appbundle --release

    If successful, the app bundle will be generated at:

    [project]/build/app/outputs/bundle/release/app.aab

    To protect your Dart code from reverse-engineering, consider adding the --obfuscate and --split-debug-info flags. Learn more in the Dart Obfuscation Guide.

    Step 3: Upload to Google Play

    Select the Production track, then click Create new release:

    Production, create new release

    Drag and drop your app bundle (app.aab) into the App bundles box:

    Create production release

    Once uploaded, the bundle will be optimised for distribution (this may take a minute or so).

    Then, it will appear above the Release details section, and the Release name will be pre-filled with the build version:

    Uploaded app bundle

    Update the Release notes (e.g. "Initial release"), then click Next.

    After completing all required steps, Google Play will display any errors or warnings. For example, you may see a warning about missing debug symbols:

    Errors, warnings and messages

    The warning above refers to uploading debug symbols for your Android native code (Kotlin or Java) and can be safely ignored. When building a Flutter app, most of your crashes are likely to happen in your Dart code. You only need to upload debug symbols for your Flutter app if you used the --obfuscate flag when building your app bundle.

    Once you click Save, a popup will appear. Click Go to overview:

    Go to Publishing overview?

    Step 4: Submit for Review

    At this stage, Google Play will perform some automated checks on your app bundle:

    Running quick checks for commonly found issues

    If all checks pass, click on the button to Send changes for review:

    Once the checks are done, the page will update and if there are no issues, you'll be able to send all the changes for review:

    Changes not yet sent for review

    After submission, your app will enter the review process, which can take several days.

    Changes in review

    Congratulations! You've now submitted the first version of your app to the Play Store! 🎉

    At the top of the Publishing overview, you can find an option about Managed publishing. Turn on this option if you want control when approved changes are published on Google Play.

    What Happens Next?

    Once you’ve submitted your app, it enters the App Review Process, where Google Play evaluates your app for compliance with its Developer Policies.

    While you wait, keep an eye on your Inbox in the Google Play Console. This is the best place to track important updates and communications from Google Play:

    Google Play Console Inbox

    To ensure you don’t miss critical notifications, turn on Email notifications for Publishing updates.

    What if your app is rejected?

    Rejections happen, even to experienced developers. If your app is rejected, don’t panic—follow these steps to resolve the issue:

    • Review the Rejection Reasons: Google Play will send you an email outlining the reasons for the rejection. This email usually includes links to the Developer Policy Center to help you understand the specific guidelines you violated.
    • Fix the Issues: Make the necessary changes to your app to address the rejection reasons. This might involve updating your app metadata, fixing technical issues like crashes or bugs, or adjusting your app’s functionality to comply with policies.
    • Resubmit Your App: Once you’ve resolved the issues, upload a new build of your app, update the metadata if necessary, and resubmit your app for review.
    • Appeal If Necessary: If you believe your app was unfairly rejected, you can submit an appeal. Be sure to provide clear and concise reasoning, along with evidence supporting your case.

    7. Submitting App Updates to the Google Play Store

    Keeping your app updated is essential for maintaining user satisfaction and staying competitive on the Play Store. Regular updates allow you to:

    • Fix bugs to improve user experience and app stability.
    • Introduce new features to keep your app relevant and engaging.
    • Comply with new Google Play policies or platform changes (e.g., updated API level requirements).

    Once you're ready, follow these steps to submit an app update:

    • Update the Version and Build Number: If you forget to do this, the upload will fail with an error, and you'll have to make a new build.
    • Build a New App Bundle: Run the flutter build appbundle --release command (with any other flags that are needed by your app).
    • Create a New Production Release: In the Google Play Console, go to the Production track and click Create new Release.
    • Upload the App Bundle: Drag and drop your updated app bundle (app-prod-release.aab) into the App bundles box.
    • Update the Release Notes: Scroll down to the Release notes section, where you can describe what’s new in this update.
    • Review and Save: Google Play will check for errors or warnings. If there are no errors, click Save.
    • Submit for Review: Once everything is ready, go to the Publishing overview and click Send change for review.

    Your app will enter the review process, just like when you first published it.

    Wrapping Up

    This article presented a clear roadmap for releasing your app on the Play Store. From account setup to submission and updates, you now have a clear guide for navigating the process successfully.

    Note that making releases by hand can be time consuming, especially if you release often. Here's a solution. 👇

    Scaling with CI/CD Pipelines

    If you work as part of a team or release updates often, consider setting up CI/CD pipelines to automate your app builds, testing, and releases. CI/CD enables you to:

    • Save time by automating repetitive tasks.
    • Run specific workflows (e.g. run tests) when certain events are triggered (e.g. when pushing a branch).
    • Distribute apps more efficiently via TestFlight or the App Store.

    To dive deeper into these topics, and many more, you can explore my new course. 👇

    New Course: Flutter in Production

    When it comes to shipping and maintaining apps in production, there are many important aspects to consider:

    • Preparing for release: splash screens, flavors, environments, error reporting, analytics, force update, privacy, T&Cs.
    • App Submissions: app store metadata & screenshots, compliance, testing vs distribution tracks, dealing with rejections.
    • Release automation: CI workflows, environment variables, custom build steps, code signing, uploading to the stores.
    • Post-release: error monitoring, bug fixes, addressing user feedback, over-the-air updates, feature flags & A/B testing.

    My latest course will help you get your app to the stores faster and with fewer headaches.

    If you’re interested, you can learn more and enroll here (currently 30% off!). 👇

    Want More?

    Invest in yourself with my high-quality Flutter courses.

    Flutter Foundations Course

    Flutter Foundations Course

    Learn about State Management, App Architecture, Navigation, Testing, and much more by building a Flutter eCommerce app on iOS, Android, and web.

    Flutter & Firebase Masterclass

    Flutter & Firebase Masterclass

    Learn about Firebase Auth, Cloud Firestore, Cloud Functions, Stripe payments, and much more by building a full-stack eCommerce app with Flutter & Firebase.

    The Complete Dart Developer Guide

    The Complete Dart Developer Guide

    Learn Dart Programming in depth. Includes: basic to advanced topics, exercises, and projects. Last updated to Dart 2.15.

    Flutter Animations Masterclass

    Flutter Animations Masterclass

    Master Flutter animations and build a completely custom habit tracking application.