So you’ve built a Flutter app and you’re ready to release it into the world. Congratulations! We’ll show you how to deploy your Flutter app to the Apple App Store and Google Play, while highlighting modern requirements teams should be aware of before submitting.
How to Release Your Flutter App for iOS
Prerequisites
- Have an Apple Developer account.
- Make sure your app complies with Apple’s App Review Guidelines, including requirements around privacy, performance, and metadata accuracy.
- Prepare your app’s icons, launch screens, and App Store assets.
- Ensure required privacy disclosures and permission purpose strings are defined before submission.
Prepare for Building
Before building your Flutter app for iOS, you need to create a record for it in App Store Connect and register a unique bundle identifier.
- Open the App IDs page in your Apple Developer account.
- Select + to create a new Bundle ID.
- Enter your App Name and an Explicit App ID.
- Enable any required app services.
- Review and select Register.
Next, create the App Store Connect record:
- Log in to App Store Connect.
- Select My Apps.
- Select + → New App.
- Enter your app details and ensure iOS is selected.
- From the sidebar, open App Information.
- In General Information, select the registered Bundle ID.
Adjust Xcode Project Settings for Release
With the App Store record in place, configure your Xcode project for release.
- Open Runner.xcworkspace inside the ios folder.
- Select the Runner project and then the Runner target.
- Open the General tab.
- In Identity, confirm the Bundle Identifier matches App Store Connect.
- In Signing & Capabilities, enable Automatically manage signing and select your team.
- In Build Settings, set the iOS Deployment Target to the minimum supported iOS version.
- Update app icons and launch images in Assets.xcassets.
Before continuing, it’s recommended to:
- Validate required permission descriptions in Info.plist
- Confirm backend services are accessible for App Review
- Run the app on a real device to catch crashes or performance issues
Build and Upload Your App
Once configuration is complete, you can build your iOS release.
- From the command line, run:
flutter build ipa
- Optionally append --build-name and --build-number to control versioning.
- Open the generated archive in Xcode.
- Select Validate App.
- After validation succeeds, select Distribute App.
Back in App Store Connect, monitor the build under Activities. When it’s ready:
- Complete Pricing and Availability.
- Select Prepare for Submission.
- Fill out metadata, privacy disclosures, and review notes.
- Select Submit for Review.
Apple will review your app and notify you of approval status or required changes.
How to Release Your Flutter App for Android
Prerequisites
- Have an Android app ready for release.
- Prepare launcher icons, screenshots, and Play Store assets.
- Create or enable a Google Play Developer account.
Prepare for Release
Before publishing to Google Play, your app must be digitally signed.
If you don’t already have a keystore
On macOS:
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias keyOn Windows:
keytool -genkey -v -keystore c:/Users/USER_NAME/key.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias keyCreate /android/key.properties to reference your keystore securely:
storePassword=
keyPassword=
keyAlias=
storeFile=/key.jksConfigure signing in Gradle
Edit /android/app/build.gradle and load the keystore configuration:
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {Replace the default release block with:
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
Then update defaultConfig:
- Set a unique applicationId
- Define versionCode and versionName
- Specify the minimum supported SDK version
Build and Release the App
Modern Google Play releases use Android App Bundles (AAB) rather than APKs.
Build your release bundle:
flutter build appbundleYour .aab file will be generated at:
build/app/outputs/bundle/release/app-release.aabUpload the bundle to Google Play Console, complete store listing details, and submit the release for review. Google will handle APK optimization and delivery automatically.
Release with Confidence Using Agentic Mobile Observability
Releasing your Flutter app is only the beginning. Once your app is live, real users, real devices, and real network conditions introduce variables that are difficult to predict during testing alone.
Luciq’s agentic mobile observability platform helps Flutter teams move beyond reactive debugging by automatically detecting crashes, performance regressions, and release instability in production. AI agents continuously analyze user sessions, release health, and performance signals to surface the most impactful issues and guide teams toward faster resolution.
By pairing a clean release process with proactive, agent‑driven observability, Flutter teams can ship confidently, maintain stability at scale, and deliver better mobile experiences with every release.







