A Complete Guide to Publishing a Flutter App on the Apple App Store (2026)





Publishing a Flutter application to the Apple App Store can seem overwhelming if you're doing it for the first time. Unlike Android, iOS has additional requirements such as Apple Developer membership, certificates, provisioning profiles, and App Store Connect.

In this guide, we'll walk through the complete process from preparing your Flutter project to successfully submitting your app for review.


Prerequisites

Before you begin, make sure you have:

  • A Mac computer

  • Flutter SDK installed

  • Xcode (latest stable version)

  • CocoaPods installed

  • An Apple Developer Account ($99/year)

  • A physical iPhone (recommended for testing)

You can verify Flutter installation by running:

flutter doctor

Ensure there are no issues related to iOS development.


Step 1: Build Your Flutter App

First, make sure your Flutter project runs correctly.

flutter clean
flutter pub get
flutter run

Fix any warnings or errors before proceeding.


Step 2: Configure the iOS Project

Open the iOS project in Xcode:

open ios/Runner.xcworkspace

Never open Runner.xcodeproj. Always use Runner.xcworkspace.


Step 3: Update Bundle Identifier

In Xcode:

  • Select Runner

  • Open Signing & Capabilities

  • Change the Bundle Identifier

Example:

com.company.myflutterapp

This identifier must be unique.


Step 4: Configure Signing

Under Signing & Capabilities:

  • Select your Apple Developer Team

  • Enable Automatically manage signing

Xcode will automatically create:

  • Development Certificate

  • Provisioning Profile

  • Signing Certificate


Step 5: Update App Information

Edit the following in Xcode:

Display Name

My Flutter App

Version

1.0.0

Build Number

1

These correspond to Flutter's pubspec.yaml:

version: 1.0.0+1

Step 6: Configure App Icons

Flutter uses the iOS asset catalog.

Open:

ios/Runner/Assets.xcassets/AppIcon.appiconset

Replace the icons with your own.

Many developers use the package:

flutter_launcher_icons:

Generate icons using:

dart run flutter_launcher_icons

Step 7: Configure Launch Screen

The launch screen can be customized in:

LaunchScreen.storyboard

or by using a native splash package:

flutter_native_splash

Generate the splash screen:

dart run flutter_native_splash:create

Step 8: Add Required Permissions

If your app accesses:

  • Camera

  • Photos

  • Location

  • Bluetooth

  • Contacts

  • Microphone

Add the corresponding permission descriptions to:

ios/Runner/Info.plist

Example:

<key>NSCameraUsageDescription</key>
<string>This app needs camera access to scan QR codes.</string>

Without these descriptions, Apple will reject your app.


Step 9: Test in Release Mode

Run:

flutter run --release

Test all major features thoroughly.


Step 10: Archive the App

Build the iOS archive:

flutter build ipa

Alternatively, archive from Xcode:

  • Product

  • Archive

Wait until the archive is created.


Step 11: Upload to App Store Connect

Once the archive is complete:

  • Open Organizer

  • Select your archive

  • Click Distribute App

  • Choose App Store Connect

  • Upload

Xcode validates the archive before uploading.


Step 12: Create an App in App Store Connect

Log in to App Store Connect.

Create a new app by providing:

  • App Name

  • Primary Language

  • Bundle ID

  • SKU

  • Platform (iOS)


Step 13: Fill App Information

Provide the following:

  • App description

  • Keywords

  • Support URL

  • Marketing URL (optional)

  • Privacy Policy URL

  • Copyright


Step 14: Upload Screenshots

Apple requires screenshots for supported devices.

Common sizes include:

  • iPhone 6.9"

  • iPhone 6.5"

  • iPad (if supported)

You can take screenshots using:

  • iOS Simulator

  • Physical iPhone


Step 15: Complete App Privacy

Apple requires you to disclose:

  • Data collected

  • Tracking

  • Analytics

  • Third-party SDK usage

Answer these questions accurately.


Step 16: Add App Review Information

Provide:

  • Demo account (if login required)

  • Password

  • Contact information

  • Notes for the reviewer

This helps speed up the review process.


Step 17: Submit for Review

Select:

  • Build

  • Version

  • Release option

Click:

Submit for Review

Apple usually reviews apps within 24 hours to a few days, though times can vary.


Common Reasons for Rejection

Some frequent reasons apps are rejected include:

  • Missing privacy permission descriptions

  • Crashes on launch

  • Placeholder content

  • Broken login

  • Misleading screenshots

  • Incomplete metadata

  • Missing Privacy Policy URL

  • Non-functional features

  • Violating Apple's Human Interface Guidelines

Always test thoroughly before submitting.


Useful Flutter Commands

flutter doctor
flutter clean
flutter pub get
flutter run
flutter run --release
flutter build ios
flutter build ipa

Tips for a Smooth Submission

  • Test on multiple devices.

  • Keep dependencies up to date.

  • Increment the build number for every new upload.

  • Verify app icons and splash screen.

  • Ensure release mode works correctly.

  • Check App Store metadata carefully before submission.


Final Thoughts

Publishing a Flutter app to the Apple App Store involves several steps, but once you understand the process, it becomes much easier. By preparing your app, configuring signing correctly, testing thoroughly, and providing complete App Store information, you can significantly improve your chances of a successful first submission.

Happy coding, and good luck with your App Store release!

Comments

Popular posts from this blog

Flutter Bloc Pattern 8.0.0 Call API

Dynamic and responsive ListView in flutter

Learn SQLite using flutter