Releasing a Flutter app means creating signed release builds for iOS and Android and submitting them to the App Store and Google Play. We'll walk through both, from app signing and build commands to store listings and review, so you can ship with confidence.
What should you check before your first Flutter release?
Flutter's release build process has a few steps that are easy to miss, especially on a first release.
Signing:
- iOS: you need a distribution certificate and an App Store provisioning profile. If you're using automatic signing in Xcode, confirm it's pointing to the right team and the profile covers your bundle ID.
- Android: generate a keystore file with keytool and add it to your key.properties. Keep the keystore file and its credentials somewhere safe. You can't update your app on Google Play without the original keystore.
Version numbers:
- Update version and build number in pubspec.yaml before building. The format is version: 1.0.0+1, where the number after + is the build number Google Play and App Store Connect use to distinguish builds. Increment it with every upload.
Build commands:
- Android: flutter build appbundle (the App Bundle format is required for Play Store submissions
- iOS: flutter build ipa, then upload the .ipa from Xcode or with xcrun altool
Pre-submission smoke test:
Run the release build on a physical device for both platforms. Flutter release builds apply tree shaking and obfuscation that occasionally breaks things that worked in debug mode, particularly around reflection-based plugins. Catch it here rather than in a review rejection.
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:
On Windows:
Create /android/key.properties to reference your keystore securely:
Configure signing in Gradle
Edit /android/app/build.gradle and load the keystore configuration:
Replace the default release block with:
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:
Your .aab file will be generated at:
Upload 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 your Flutter app with confidence
After launch, Luciq's Flutter SDK captures crashes, performance and feedback on both platforms, and flags regressions by release, so a bad build never goes unnoticed.



