Preparing and Submitting to the Apple App Store
Preparing and Submitting to the Apple App Store
Publishing a Flutter app to the Apple App Store involves a precise sequence of steps: creating an App Store Connect record, supplying all required metadata and screenshots, building and uploading an IPA archive, and finally submitting the build through TestFlight and then App Review. This lesson walks through every step in detail so your submission succeeds on the first attempt.
Prerequisites
Before you begin the submission process, make sure the following are in place:
- An active Apple Developer Program membership ($99 USD/year)
- A valid Distribution Certificate and a Provisioning Profile (App Store distribution type) created in your Apple Developer account
- Xcode 15 or later installed on macOS with the Command Line Tools
- Your Flutter app configured with the correct
Bundle IDinios/Runner.xcodeprojmatching the one registered in App Store Connect - App icons at all required resolutions (use the
flutter_launcher_iconspackage or Xcode asset catalogue)
Step 1 — Create an App Store Connect Record
Log in to App Store Connect (appstoreconnect.apple.com) and create a new app:
- Click My Apps → (+) → New App
- Choose iOS as the platform
- Enter the app Name (visible to users on the App Store), Primary Language, Bundle ID, and a unique SKU
- Click Create
After creation you will land on the app’s detail page. This is where you fill in all the metadata required before Apple will accept your submission.
Step 2 — Complete App Metadata and Screenshots
Apple requires complete metadata for every submission. Navigate to the App Store tab inside your app record and fill in:
- Description — up to 4,000 characters explaining what the app does
- Keywords — comma-separated, max 100 characters total; drives discoverability
- Support URL and Marketing URL
- Version Number and Copyright string
- Age Rating — fill in the questionnaire; Apple calculates the rating automatically
- Category — primary and optional secondary
Screenshots are mandatory and must cover every required device size. As of 2024 you must supply screenshots for at least:
- 6.9-inch display (iPhone 16 Pro Max)
- 6.5-inch display (iPhone 14 Plus / 11 Pro Max)
- 5.5-inch display (iPhone 8 Plus) — required for older OS support
- 12.9-inch iPad Pro (6th generation) — if your app supports iPad
Step 3 — Build the Release IPA in Flutter
Flutter builds a release IPA by archiving through Xcode. There are two methods:
Method A — Flutter CLI build
# Build a release archive (creates an .xcarchive under build/ios/archive)
flutter build ipa --release
# The IPA is placed at:
# build/ios/ipa/Runner.ipa
Method B — Xcode Organizer (manual archive)
# 1. Open the Xcode workspace (not the .xcodeproj)
open ios/Runner.xcworkspace
# 2. In Xcode:
# a. Select "Any iOS Device (arm64)" as the destination
# b. Product > Archive
# c. Wait for the archive to appear in Organizer (Window > Organizer)
# d. Click "Distribute App" > "App Store Connect" > Next > Upload
Step 4 — Upload the Build to App Store Connect
Once you have an IPA you can upload it using either the Xcode Organizer (recommended) or Apple’s standalone Transporter app (free on the Mac App Store).
- Xcode Organizer: After archiving, click Distribute App → App Store Connect → Upload. Xcode signs and validates the binary automatically before sending it.
- Transporter: Drag the
.ipafile into Transporter, sign in with your Apple ID, and click Deliver. Transporter runs the same validation checks as Xcode.
Apple’s servers process the upload; you will receive an email confirmation within a few minutes. The build then appears under TestFlight in App Store Connect once processing is complete (usually 5–15 minutes).
Step 5 — TestFlight Distribution (Optional but Recommended)
Before submitting to App Review it is strongly recommended to distribute the build via TestFlight:
- Internal testers (up to 100 members of your team) get immediate access after processing
- External testers (up to 10,000 users) require a brief Beta App Review (usually 1 business day)
- TestFlight catches real-device bugs and crash reports before the public release
Step 6 — Submit for App Review
When the build is ready, go back to the App Store tab of your app record:
- Under Build, click the (+) button and select the processed build
- Fill in any missing information flagged with an orange dot
- Complete the App Privacy questionnaire (data collection declarations)
- Under App Review Information, add demo credentials if your app has a login screen
- Click Submit for Review
Apple’s review team typically responds within 24–48 hours for standard reviews. You will be notified by email when the status changes to Approved or Rejected.