Skip to main content

How to Publish a Flutter App to Google Play & the App Store (Step-by-Step)

·9 min read·By MRB Lab

You've built (or bought) a Flutter app — now it has to survive two review processes with different rules, different signing schemes, and different paperwork. This guide walks through the entire release path for both stores, in the order that avoids rework, plus the rejection reasons we see most often.

Before anything: the two developer accounts

  • Google Play Console — one-time $25 fee. Identity verification can take a couple of days, so register early. New personal accounts must also run a closed test with at least 12 testers for 14 days before production access — plan for this.
  • Apple Developer Program — $99/year. Enrolling as an organization requires a D-U-N-S number; individuals can enroll with just an Apple ID and government ID.

Step 1: Prepare the app identity

Set these once, before your first build — changing them later means resubmitting:

  • Application ID / Bundle ID — reverse-domain, unique, permanent (e.g. com.yourbrand.appname).
  • Version name and build number — every store upload must have a higher build number than the last.
  • App icon and splash screen — generated for all densities.

Step 2: Android — sign and build

Create your upload keystore

Generate a keystore with keytool, reference it from android/key.properties, and back it up somewhere safe. With Play App Signing, Google holds the final signing key, but you still need your upload key for every future release.

Build the app bundle

Google Play requires the AAB format, not APK: flutter build appbundle --release. Upload the generated .aab in the Play Console.

Complete the Play Console forms

The listing itself (title, short and full description, screenshots, feature graphic) is the fast part. Budget more time for the policy declarations: content rating questionnaire, target audience, data safety form, and a hosted privacy policy URL — all mandatory.

Step 3: iOS — certificates and TestFlight

Signing

In Xcode, enable Automatically manage signing with your team selected — it provisions certificates and profiles for you. Create the app record in App Store Connect with the same bundle ID.

Build and upload

Run flutter build ipa --release, then upload the archive with Xcode's Organizer or the Transporter app. The build appears in App Store Connect after processing (usually under an hour).

TestFlight first

Install the processed build via TestFlight on a real device before submitting. Most first-submission crashes that trigger rejections would have been caught by a five-minute TestFlight session.

Step 4: Store listings that actually convert

  • Screenshots sell, text confirms. Lead with your best 2–3 screens; add captions that state benefits.
  • Use your keywords naturally in the title and description — app store search is still keyword search.
  • Localize if your audience isn't English-first; localized listings measurably lift installs.

The five most common rejection reasons

  1. Missing or broken privacy policy URL — both stores check it.
  2. Incomplete data safety / privacy nutrition labels — declare every SDK that collects data (ads and analytics count).
  3. Crashes on launch — usually a release-mode-only config issue (Firebase files, ProGuard/R8 rules).
  4. Placeholder content — lorem ipsum screens or demo data in screenshots.
  5. Guideline 4.2 (minimum functionality, Apple) — an app that is just a website wrapper. Native Flutter apps with real features pass; web wrappers don't.

After approval: don't stop

Respond to reviews, watch crash reports (Crashlytics is free), and ship updates — stores rank actively maintained apps higher. Keep your signing keys and account credentials documented in one safe place.

Want it done for you?

If you bought one of our Flutter templates, you don't have to touch any of this. Our installation service handles Firebase setup, branding, release signing, listings, and submission on your own developer accounts — so you keep full ownership. Check the documentation or contact us with questions.

Ready to launch your app?

Don't want to deal with signing keys and store reviews? Our installation service configures, builds, and publishes your app to both stores for you.

View Installation Plans

Frequently asked questions

How much does it cost to publish an app?

Google Play charges a one-time $25 registration fee. Apple charges $99 per year for a Developer Program membership. Those are the only mandatory costs — everything else in the release process is free.

How long does app review take?

Google Play usually reviews new apps within 1–7 days (first submissions are slower than updates). Apple typically reviews within 24–48 hours, though first submissions with account setup can take longer.

Can someone publish the app for me?

Yes. If you purchased a Flutter template, an installation service can handle Firebase setup, branding, release signing, store listings, and submission on your developer accounts — you keep full ownership of the accounts and the app.

← Back to all articles