Releasely
All articles

Guides

Ship your first Flutter app to the App Store, end to end

A practical walkthrough — from a green flutter create to a TestFlight invite — without installing a single Apple developer tool locally.

Releasely Team·May 12, 2026·9 min read

Shipping a Flutter app to the App Store has historically meant a Mac, an Xcode install, an Apple Developer membership, a provisioning profile rabbit hole, and a Fastlane file you copy-pasted from a 2021 tutorial. None of that is technically wrong — but for a first release, it is overkill. This guide walks through the minimum path from a fresh Flutter project to a TestFlight build invite, doing the iOS-specific steps in the browser instead of on a Mac.

Before you start

You need exactly two things before opening a single config file: a Flutter project that runs on a simulator, and an Apple Developer account ($99 / year). Everything else — the certificates, the provisioning profile, the .ipa build, the upload to App Store Connect — can be handled outside your machine.

  • A Flutter project that runs locally (flutter run on simulator is enough).
  • An Apple Developer Program membership, enrolled and active.
  • Access to App Store Connect with the Account Holder or Admin role.

Step 1 — Set your bundle identifier and version

Flutter's pubspec.yaml carries the version (1.0.0+1 — the part after the + is the build number). The bundle identifier lives in ios/Runner.xcodeproj — but you can override it without opening Xcode by editing ios/Runner/Info.plist or, cleaner, by setting it from the command line when building.

  • Pick a reverse-DNS bundle ID you own, e.g. com.yourbrand.recipeplanner.
  • Bump the version in pubspec.yaml to 1.0.0+1 for your first submission.
  • Match the bundle ID in App Store Connect when you create the app record.

Step 2 — Create the App Store Connect record

On App Store Connect, click My Apps → +. Pick iOS as the platform, give it a name (under 30 characters — this is the App Store name, not the project name), choose a primary language, paste your bundle ID, and pick an SKU (any unique string you want). That's the record. The listing — screenshots, description, keywords — comes later.

Step 3 — Generate the iOS build

This is the step that traditionally requires Xcode. You have two options. Option A: install Xcode, run flutter build ipa, sign with your Apple ID, upload via Transporter. Option B: upload your project folder to Releasely, which runs the build on a managed macOS instance, signs with your Apple Developer credentials via the App Store Connect API, and returns the .ipa.

  • Option A keeps everything local but requires macOS + 12 GB of Xcode.
  • Option B works from any OS and skips the Xcode and Fastlane setup.
  • Either way, what you end up with is a signed .ipa ready for upload.

Step 4 — Push the build to TestFlight

Upload the .ipa to App Store Connect (via Transporter, the App Store Connect API, or Releasely's one-click push). Apple's processing takes 5–20 minutes. Once it's processed, the build shows up in TestFlight. Add yourself as an internal tester, install the TestFlight app on your iPhone, and you'll get the invite within seconds.

Step 5 — Write the listing and submit for review

Once TestFlight is green, swap to App Store Connect → App Store tab. You need: an app name (30 chars), subtitle (30 chars), keywords (100 chars), description (4,000 chars), at least one screenshots per device size you support, a privacy policy URL, and a support URL. Fill them in, attach the TestFlight build, and click Submit for Review.

  • Apple's median review time is 24–48 hours for new apps.
  • About 30% of first submissions are rejected — usually for missing privacy disclosures, broken links, or sign-in flows that don't work.
  • Once approved, the app goes live within an hour (or on your chosen release date).

What's next

First release on the App Store is the hardest because every piece is new. The second release is mostly version bumps, release notes, and a new TestFlight build. The third one feels like muscle memory. The same flow ports to Google Play with a few differences — version codes instead of build numbers, .aab instead of .ipa, faster review, and no Beta App Review for closed testing.

Written by

Releasely Team

Tools and guides for developers shipping to the App Store and Google Play.

ShareXLinkedIn
Releasely

Ship to both stores from one workspace

Drag a build or a project folder, write release notes, push to App Store Connect and Play Console. Free to start.