Skip to main content
RapidDev - Software Development Agency
flutterflow-tutorials

How to Deploy Your FlutterFlow App to the App Store and Google Play

Deploy your FlutterFlow app to web via the Publish icon, iOS via Settings → App Details with your Apple Developer account, and Android by first manually uploading an AAB to Google Play Console Internal Testing before using one-click deploy. Always complete the pre-deploy checklist: Firestore Rules deployed, API keys in Secrets, and app tested on physical devices before submitting for review.

What you'll learn

  • How to publish your FlutterFlow app to the web with a custom domain
  • How to configure App Details and deploy to the iOS App Store with one-click deploy
  • How to complete the required first manual AAB upload to Google Play Console before one-click Android deploy works
  • How to pass App Store and Google Play review with the right metadata and privacy policy
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Beginner12 min read45-90 min (varies by platform)FlutterFlow Free+ (web); FlutterFlow Pro+ (iOS/Android one-click deploy)March 2026RapidDev Engineering Team
TL;DR

Deploy your FlutterFlow app to web via the Publish icon, iOS via Settings → App Details with your Apple Developer account, and Android by first manually uploading an AAB to Google Play Console Internal Testing before using one-click deploy. Always complete the pre-deploy checklist: Firestore Rules deployed, API keys in Secrets, and app tested on physical devices before submitting for review.

The complete FlutterFlow deployment reference for web, iOS, and Android

Getting your app from FlutterFlow into users' hands requires different steps for each platform. Web deployment is instant through the Publish icon. iOS requires an Apple Developer account, a signing certificate, and provisioning profile configured in Settings → App Details. Android has a well-known first-deploy trap: FlutterFlow's one-click deploy only works after you have manually uploaded the very first AAB to Google Play Console's Internal Testing track. This tutorial is the definitive step-by-step reference covering all three platforms, custom domain setup, and the pre-deploy checklist to avoid common rejection reasons.

Prerequisites

  • A completed FlutterFlow project tested in Test Mode with no critical errors
  • Apple Developer Program membership ($99/year) for iOS deployment
  • Google Play Console developer account ($25 one-time fee) for Android deployment
  • A privacy policy URL hosted at a public URL (required by both stores)
  • App icons prepared: 1024×1024 PNG for iOS, 512×512 PNG for Android (no alpha/transparency)

Step-by-step guide

1

Complete the pre-deploy checklist

Before touching deployment settings, verify your app is production-ready. In FlutterFlow's Firestore panel, check that your security rules are deployed to production — click Deploy to Firebase to push any rule changes. Open Settings → API Calls and confirm all API keys are stored in Settings → Secrets (Environment Variables), not hardcoded in API headers. Run your app in Test Mode and click through every screen on both iOS simulator and Android emulator. Check the FlutterFlow Issues panel (bottom toolbar) for any unresolved errors shown in red. Set your app version in Settings → App Details → Version (e.g., 1.0.0) and Build Number (e.g., 1) — the build number must increment with every submission. Add a meaningful App Name, a short Description, and your Privacy Policy URL in Settings → App Details.

Expected result: No red issues in FlutterFlow, Firestore Rules deployed, all secrets in Secrets panel, version and build number set.

2

Publish to web with a custom domain

Click the Publish icon in the top-right toolbar (the rocket/globe icon). In the Publish panel, set your Page Title (appears in browser tab), Description (for search engines), and upload an OG Image (1200×630 PNG for social link previews). Under Access Controls, choose Public or Private (password-protected). Click the Review Security section and address any warnings. Click Publish. Your app gets a free flutterflow.app subdomain immediately. For a custom domain: go to Settings → Custom Domain → Add Domain, enter your domain (e.g., app.yourdomain.com), copy the provided CNAME record, add it in your domain registrar's DNS settings, then click Verify. DNS propagation takes 10-60 minutes. Click Update in the Publish panel whenever you make changes — web deployments are not automatic.

Expected result: Your app is live at your FlutterFlow subdomain and optionally at your custom domain within an hour.

3

Configure App Details for iOS and generate your signing certificate

Go to Settings → App Details. Set the Bundle ID in reverse-domain format (e.g., com.yourcompany.appname) — this must exactly match the App ID you create in Apple Developer Portal and cannot be changed after your first submission. Upload your App Icon: a 1024×1024 PNG with no alpha channel (App Store rejects transparent icons). Set Minimum iOS Version (16.0 recommended for maximum compatibility). In Apple Developer Portal (developer.apple.com), create an App ID matching your Bundle ID with the capabilities your app uses (Push Notifications, Sign in with Apple, etc.). Create a Distribution Certificate and download it. Create an App Store provisioning profile using that certificate. In FlutterFlow → Settings → App Details → iOS → one-click deploy section, enter your Apple ID and the app's App Store Connect Apple ID. FlutterFlow handles code signing automatically if you have connected your Apple Developer account.

Expected result: Bundle ID is set, App Icon uploaded, Distribution Certificate and provisioning profile created in Apple Developer Portal.

4

Deploy to iOS App Store

In FlutterFlow, go to Settings → App Details → iOS Deploy section. Click Deploy to App Store. FlutterFlow builds an IPA, signs it with your certificate, and uploads it directly to App Store Connect (this takes 5-15 minutes). Log in to App Store Connect (appstoreconnect.apple.com), navigate to My Apps → your app → TestFlight. Wait for the build to finish processing (usually 5-20 minutes). In the App Store tab, fill in: App Description, Keywords (100 char limit, comma-separated), Support URL, Screenshots for every required device size (iPhone 6.7-inch is mandatory, iPad if applicable). Set your Age Rating, Pricing (free or paid), and Categories. Under App Privacy, answer the data collection questions. Click Submit for Review. First-time reviews take 1-3 days; subsequent reviews are typically 24 hours.

Expected result: Build appears in TestFlight, metadata is complete, and the app is submitted for App Store review.

5

Manually upload the first AAB to Google Play Console

The most common FlutterFlow Android deployment failure: FlutterFlow's one-click Google Play deploy shows error 'Only releases with status draft may be created on tracks with no previous releases' because you have never uploaded an AAB to this app's Play Console. You MUST manually upload the first build. In FlutterFlow → Settings → App Details → Android, click Download AAB to download a signed Android App Bundle. In Google Play Console (play.google.com/console), click Create app, fill in the app name, select language, app type (app or game), and agree to policies. Navigate to Testing → Internal Testing → Create new release. Upload the AAB file. Add release notes. Click Save, then Review release, then Start rollout to Internal Testing. Once the Internal Testing release is live (usually immediate), FlutterFlow's one-click Android deploy will work for all future releases.

Expected result: First AAB is live in Internal Testing track. FlutterFlow one-click Android deploy now works for subsequent releases.

6

Complete the Google Play Store listing and submit for review

In Google Play Console, go to your app → Store presence → Main store listing. Fill in the App Name (max 50 chars), Short Description (max 80 chars), Full Description (max 4000 chars), and App Icon (512×512 PNG, no alpha). Upload Feature Graphic (1024×500 PNG) and Screenshots for Phone (at least 2, max 8), and optionally Tablet. Navigate to Store presence → Store settings to set Category, Tags, and Contact Details (email and website required). Go to App content → Privacy policy and enter your hosted privacy policy URL. Complete the App content → Data safety form — answer questions about data collection, sharing, and security practices. Incomplete Data Safety forms cause review rejection. Click Send changes. Navigate to Production → Create new release. Promote your Internal Testing release or upload a new AAB. Review and rollout.

Expected result: Store listing is complete with all required assets, data safety form submitted, and app is in production review queue.

Complete working example

Deployment Checklist and Platform Configuration
1PRE-DEPLOY CHECKLIST:
2 Firestore Security Rules deployed (FlutterFlow Firestore Deploy)
3 All API keys in Settings Secrets (not hardcoded in API headers)
4 App tested in Test Mode on iOS simulator + Android emulator
5 No red errors in FlutterFlow Issues panel
6 Version: 1.0.0, Build Number: 1 (increment on every submit)
7 Privacy Policy URL hosted publicly
8 App Icon: 1024x1024 PNG, no alpha channel
9
10WEB DEPLOYMENT:
11 Publish icon (top-right) set Title, Description, OG Image
12 Access Controls: Public or Private
13 Click Publish gets flutterflow.app subdomain
14 Custom Domain: Settings Custom Domain Add Domain
15 Add CNAME record in DNS registrar
16 Verify (10-60 min propagation)
17 Click Update to push future changes (not automatic)
18
19iOS DEPLOYMENT:
20 Settings App Details
21 Bundle ID: com.yourcompany.appname (permanent)
22 App Icon: 1024x1024 PNG (no transparency)
23 Minimum iOS: 16.0
24 Apple Developer Portal
25 Create App ID matching Bundle ID
26 Create Distribution Certificate
27 Create App Store Provisioning Profile
28 FlutterFlow Deploy to App Store (5-15 min build)
29 App Store Connect
30 TestFlight wait for processing (5-20 min)
31 App Store tab Screenshots (6.7-inch required)
32 Description, Keywords (100 chars), Support URL
33 Age Rating, Privacy questionnaire
34 Submit for Review (1-3 days first review)
35
36ANDROID DEPLOYMENT FIRST TIME:
37 FlutterFlow Download AAB (first time only)
38 Google Play Console Create app
39 Testing Internal Testing Create new release
40 Upload AAB Save Review Start rollout
41 After Internal Testing release is live:
42 FlutterFlow one-click Android deploy now works
43
44ANDROID DEPLOYMENT SUBSEQUENT RELEASES:
45 FlutterFlow Settings Android Deploy to Play Store
46 Increment Build Number each time
47
48GOOGLE PLAY STORE LISTING:
49 App Name (50 chars), Short Desc (80), Full Desc (4000)
50 Icon: 512x512 PNG (no alpha)
51 Feature Graphic: 1024x500 PNG
52 Screenshots: 2-8 for Phone, optional Tablet
53 Privacy Policy URL (required)
54 Data Safety form (required rejection if incomplete)
55 Category, Tags, Contact Email

Common mistakes when deploying Your FlutterFlow App to the App Store and Google Play

Why it's a problem: First Google Play deploy fails because the first AAB must be manually uploaded to Internal Testing

How to avoid: Download the AAB from FlutterFlow → Settings → Android → Download AAB. Upload it manually in Google Play Console → Testing → Internal Testing → Create new release. Once that release is live, all future deploys via FlutterFlow one-click work without issue.

Why it's a problem: Submitting without a complete Google Play Data Safety form

How to avoid: Complete every question in the Data Safety form before submitting for review. If your app uses Firebase Analytics, Firebase Auth, or Firestore, you collect user data and must declare it. Answer honestly — false declarations lead to account suspension.

Why it's a problem: Using the same Build Number for a new submission

How to avoid: Increment the Build Number in Settings → App Details before every deploy. Many developers use sequential integers (1, 2, 3) or a date-based format (20260315, 20260316). The Version (1.0.0) only changes for user-visible releases; Build Number increments every submission.

Best practices

  • Always test on a physical iOS device and physical Android device before submitting — simulators do not catch camera, biometrics, push notification, or performance issues
  • Use TestFlight and Google Play Internal Testing for at least one round of beta testing before production submission to catch store-specific issues
  • Prepare all App Store and Play Store screenshots before starting the deployment process — store listing is the most time-consuming part of submission
  • Keep your Privacy Policy URL live and accessible at all times — Apple and Google periodically re-check it and can remove your app if it goes down
  • Increment Build Number on every build, even test builds uploaded to TestFlight or Internal Testing
  • Configure custom domains for web before giving the URL to users — the default flutterflow.app subdomain looks unprofessional and cannot be SEO-optimized
  • Set up App Store Connect and Google Play Console accounts before building your app — account approvals can take 1-7 days and should not block your launch

Still stuck?

Copy one of these prompts to get a personalized, step-by-step explanation.

ChatGPT Prompt

I am deploying a FlutterFlow app to the iOS App Store and Google Play Store for the first time. Walk me through the complete checklist: what to prepare in FlutterFlow Settings → App Details, how to create a Distribution Certificate and provisioning profile in Apple Developer Portal, how to upload the first Android AAB manually to Google Play Console Internal Testing, and what metadata is required to avoid rejection by both stores.

FlutterFlow Prompt

Check my FlutterFlow project for deployment readiness: are there any missing app icons, unset bundle IDs, API keys hardcoded in API headers instead of Secrets, or Firestore rules that haven't been deployed? List everything I need to fix before submitting to the App Store and Google Play.

Frequently asked questions

Do I need to export code to deploy to the App Store or Google Play from FlutterFlow?

No. FlutterFlow's one-click deploy handles the entire build and submission process without you needing to export code, use Xcode, or run terminal commands. The only exception is if you use custom native code or Swift/Kotlin packages that require post-export configuration in Xcode or Android Studio.

Why does my first Android deployment say 'Only releases with status draft may be created'?

This is the most common Android deployment error for new apps. FlutterFlow's one-click deploy uses the Google Play Developer API, which cannot create the very first release for a new app. You must manually download the AAB from FlutterFlow and upload it to Google Play Console → Internal Testing track first. After that, all future one-click deploys work normally.

How long does Apple App Store review take?

First-time submissions typically take 1-3 business days. Subsequent updates are usually reviewed within 24 hours. Expedited review is available in the App Store Connect Resolution Center if you have a critical bug fix or time-sensitive launch. About 40% of submissions are approved immediately, but common rejection reasons include incomplete metadata, broken functionality, and missing privacy policy.

Can I update my web app without republishing?

No. Every change you make in FlutterFlow requires you to click the Publish icon and then click Update to push the latest version to the web. Unlike some platforms, FlutterFlow web deployments are not automatically published when you save changes. iOS and Android updates also require re-submission through their respective stores.

What is the difference between Version and Build Number in FlutterFlow?

Version (e.g., 1.2.0) is the user-visible version shown on the App Store and Play Store listing. Build Number (e.g., 47) is an internal number that must increase with every submission — both stores reject submissions where the Build Number is not higher than the previous one. You can submit multiple builds with the same Version but each must have a unique and higher Build Number.

Can RapidDev help with my App Store or Google Play submission?

Yes. If you are hitting code signing errors, rejection notices from Apple or Google, or need help setting up TestFlight distribution or Google Play tracks, RapidDev can manage the submission process end-to-end including metadata, screenshots, and compliance requirements.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Need help with your project?

Our experts have built 600+ apps and can accelerate your development. Book a free consultation — no strings attached.

Book a free consultation

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.