One codebase ships to both stores. You build a signed Android App Bundle and an iOS archive.
Android
flutter build appbundle // produces app-release.aab
Configure signing in android/key.properties and build.gradle, then upload the .aab to the Play Console.
iOS
flutter build ipa // then upload via Xcode / Transporter
Open ios/Runner.xcworkspace in Xcode for signing, then archive and submit through App Store Connect.
- Set app name, icon (flutter_launcher_icons) and version in
pubspec.yaml. - Test release builds on real devices before submitting.
Common mistake: Debug builds are slower and larger. Always test and ship the release build.
Summary
Build a signed .aab for Play and an .ipa for the App Store from the same Flutter project, then submit through each store.