---
title: "Flutter App veröffentlichen: Schritt für Schritt in den App Store"
description: "Flutter App veröffentlichen leicht gemacht: Von der Vorbereitung über den Google Play Release bis zum Apple App Store. Komplette Anleitung mit Code-Beispielen, häufigen Fehlern und Praxis-Tipps."
canonical_url: "https://robocitrus.com/blog/flutter-app-veroeffentlichen"
last_updated: "2026-07-08T18:14:07.421Z"
---

Du hast wochenlang an deiner Flutter-App gebaut. Die Features stehen, die Tests laufen, das Design sitzt. Und jetzt? Jetzt kommt der Teil, den die meisten Tutorials überspringen: die App tatsächlich in den App Store und Google Play Store zu bringen. Als ich meine erste Flutter-App veröffentlicht habe, hat mich dieser Prozess fast mehr Nerven gekostet als die eigentliche Entwicklung. Accounts anlegen, Zertifikate generieren, Screenshots erstellen, Formulare ausfüllen, es fühlt sich an wie ein Behördengang in digitaler Form. Aber keine Sorge: Ich führe dich Schritt für Schritt durch den gesamten Prozess, damit deine Flutter App den Weg in die Stores findet.

---

## Kurz zusammengefasst

- Du brauchst einen Apple Developer Account (99 $/Jahr) und eine Google Play Console (25 $ einmalig), bevor du starten kannst
- App-Icon, Splash Screen, Bundle ID und Versionsnummer müssen vor dem Release korrekt konfiguriert sein
- Für Android erstellst du ein App Bundle (`flutter build appbundle`), für iOS ein IPA (`flutter build ipa`)
- Google Play Review dauert ca. 1-3 Tage, Apple App Store Review ca. 1-7 Tage
- Häufigste Fehler: fehlende Screenshots, falsche Signing-Konfiguration und vergessene Permissions

---

## Voraussetzungen: Was du brauchst, bevor es losgeht

Bevor du auch nur einen Build-Befehl tippst, musst du ein paar Dinge bereithalten. Stell dir das vor wie beim Autofahren: Bevor du losfährst, brauchst du Führerschein, Fahrzeugpapiere und ein tankvolles Auto. Hier ist deine Checkliste:

### Developer-Accounts

**Apple Developer Program:**

- Kosten: **99 $ pro Jahr**
- Anmeldung unter [developer.apple.com](https://developer.apple.com)
- Verifizierung dauert 24-48 Stunden (manchmal länger)
- Du brauchst eine Apple ID und einen Mac für den iOS-Build

**Google Play Console:**

- Kosten: **25 $ einmalig** (Lebenszeit-Zugang)
- Anmeldung unter [play.google.com/console](https://play.google.com/console)
- Seit November 2023 musst du die [Entwicklerverifizierung](/blog/entwicklerverifizierung) durchlaufen
- Die Verifizierung kann bis zu 7 Tage dauern, also frühzeitig starten

### Technische Voraussetzungen

- Flutter SDK aktuell (mindestens Stable Channel)
- Xcode installiert und aktuell (für iOS)
- Android Studio oder die Android SDK Command-Line Tools
- Ein fertig getestetes Flutter-Projekt
- App-Icon in hoher Auflösung (1024x1024 px)
- Screenshots für verschiedene Gerätegrößen

## App für den Release vorbereiten

Jetzt wird's konkret. Bevor wir einen Build erstellen, müssen wir die App release-ready machen. Dieser Schritt wird gerne übersprungen, und dann wundern sich Leute, warum der Store die App ablehnt.

### App-Name und Bundle ID festlegen

Die **Bundle ID** (iOS) bzw. **Application ID** (Android) ist die eindeutige Kennung deiner App. Einmal im Store, kannst du sie nicht mehr ändern. Wähle sie also mit Bedacht.

Für Android in `android/app/build.gradle`:

```groovy
android {
    defaultConfig {
        applicationId "com.deinunternehmen.deineapp"
        minSdkVersion 21
        targetSdkVersion 34
    }
}
```

Für iOS in `ios/Runner.xcodeproj/project.pbxproj` oder direkt in Xcode unter **Runner > Signing & Capabilities**:

```text
PRODUCT_BUNDLE_IDENTIFIER = com.deinunternehmen.deineapp
```

**Tipp:** Verwende die Reverse-Domain-Notation (`com.firmenname.appname`). Halte den Namen kurz und verwende nur Kleinbuchstaben.

### App-Icon generieren

Niemand will manuell Icons in 47 verschiedenen Größen exportieren. Das Package `flutter_launcher_icons` erledigt das automatisch.

```yaml
# pubspec.yaml
dev_dependencies:
  flutter_launcher_icons: ^0.14.3

flutter_launcher_icons:
  android: true
  ios: true
  image_path: "assets/icon/app_icon.png"
  min_sdk_android: 21
  adaptive_icon_background: "#FFFFFF"
  adaptive_icon_foreground: "assets/icon/app_icon_foreground.png"
```

Dann ausführen:

```bash
dart run flutter_launcher_icons
```

Das generiert alle benötigten Icon-Größen für Android (inklusive Adaptive Icons) und iOS. Dein Quell-Icon sollte mindestens 1024x1024 Pixel groß sein und im PNG-Format vorliegen.

### Splash Screen einrichten

Der Splash Screen ist das Erste, was Nutzer sehen, wenn sie deine App öffnen. Mit `flutter_native_splash` richtest du ihn sauber ein:

```yaml
# pubspec.yaml
dev_dependencies:
  flutter_native_splash: ^2.4.6

flutter_native_splash:
  color: "#FFFFFF"
  image: "assets/splash/splash_logo.png"
  android_12:
    image: "assets/splash/splash_logo.png"
    color: "#FFFFFF"
```

```bash
dart run flutter_native_splash:create
```

### Versionsnummer festlegen

In der `pubspec.yaml` steht die Version deiner App:

```yaml
version: 1.0.0+1
```

Das Format ist: `major.minor.patch+buildNumber`. Die erste Zahl vor dem `+` ist die Versionsnummer, die User sehen. Die Zahl nach dem `+` ist der Build-Number, den sieht nur der Store. **Wichtig:** Der Build-Number muss bei jedem Upload hochgezählt werden, sonst lehnt der Store den Upload ab.

### Letzte Checks vor dem Release

Bevor du den Build startest, geh diese Checkliste durch:

- **Debug-Banner entfernt?** In `MaterialApp` das Property `debugShowCheckedModeBanner: false` setzen (oder einfach im Release-Mode, da ist es automatisch weg)
- **Permissions korrekt?** Nur die Berechtigungen anfordern, die deine App wirklich braucht. Unnötige Permissions sind ein häufiger Ablehnungsgrund
- **API-Keys nicht hardcoded?** Sensible Daten gehören nicht in den Source Code. Nutze Environment Variables oder ein Secrets-Management
- **Logging entfernt?** Keine `print()`-Statements oder Debug-Logs im Release-Build

## Android App veröffentlichen: Google Play Store

Android ist der einfachere Einstieg. Der Prozess ist geradliniger, die Review-Zeiten kürzer und der Account günstiger. Fangen wir hier an.

### Schritt 1: Signing Key erstellen

Android-Apps müssen digital signiert werden. Erstelle einen Keystore:

```bash
keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA \
  -keysize 2048 -validity 10000 -alias upload
```

**Bewahre diesen Key sicher auf!** Wenn du ihn verlierst, kannst du keine Updates mehr für deine App veröffentlichen. Ich empfehle, ihn verschlüsselt in einem Passwort-Manager zu speichern.

Erstelle eine Datei `android/key.properties`:

```properties
storePassword=dein_passwort
keyPassword=dein_key_passwort
keyAlias=upload
storeFile=/pfad/zu/upload-keystore.jks
```

Und referenziere sie in `android/app/build.gradle`:

```groovy
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {
    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}
```

**Wichtig:** Füge `key.properties` und deinen Keystore zu `.gitignore` hinzu! Diese Dateien gehören niemals ins Repository.

### Schritt 2: Release Build erstellen

Jetzt erstellen wir das App Bundle für den Play Store:

```bash
flutter build appbundle --release
```

Das generiert eine `.aab`-Datei unter `build/app/outputs/bundle/release/app-release.aab`. Falls du wissen willst, was der Unterschied zwischen einem App Bundle und einer [APK-Datei](/blog/was-ist-ein-apk) ist: Das AAB ist das modernere Format, das Google seit 2021 für den Play Store verlangt. Google generiert daraus optimierte APKs für jedes Gerät.

### Schritt 3: App in der Google Play Console hochladen

1. Öffne die [Google Play Console](https://play.google.com/console)
2. Klicke auf **"App erstellen"**
3. Wähle die Standard-App-Kategorie und Sprache
4. Gehe zu **Release > Production > Create new release**
5. Lade deine `.aab`-Datei hoch
6. Füge Release Notes hinzu (was ist neu in dieser Version?)

Google wird dich beim Hochladen fragen, ob du **Play App Signing** nutzen willst. **Ja, unbedingt!** Damit verwaltet Google deinen Signing-Key, das ist sicherer, und du kannst den Key nicht verlieren.

### Schritt 4: Store Listing erstellen

Hier entscheidet sich, ob Nutzer deine App installieren oder weiterscrollen. Du brauchst:

- **App-Name** (max. 30 Zeichen)
- **Kurzbeschreibung** (max. 80 Zeichen)
- **Vollständige Beschreibung** (max. 4.000 Zeichen)
- **Screenshots**, mindestens 2, empfohlen 8 (für Handy und Tablet)
- **Feature Graphic** (1024x500 px)
- **App-Icon** (512x512 px, wird aus dem Build übernommen)

**Tipp für Screenshots:** Nutze Tools wie [screenshots.pro](https://screenshots.pro) oder Figma, um professionelle Store-Screenshots mit Device-Frames und Text-Overlays zu erstellen. Gute Screenshots steigern die Installationsrate erheblich.

### Schritt 5: Content Rating

Google verlangt eine Altersfreigabe. Du beantwortest einen Fragebogen über den Inhalt deiner App (Gewalt, Sprache, In-App-Käufe, etc.). Das dauert 5 Minuten und ist unkompliziert. Beantworte die Fragen ehrlich, eine falsche Einstufung kann zur Entfernung aus dem Store führen.

### Schritt 6: Pricing & Distribution

Entscheide, ob deine App kostenlos oder kostenpflichtig ist. **Achtung:** Eine einmal als kostenlos veröffentlichte App kann nicht mehr auf kostenpflichtig umgestellt werden. Der umgekehrte Weg ist möglich.

Wähle die Länder, in denen deine App verfügbar sein soll, und ob sie Werbung enthält.

### Schritt 7: Review & Release

Wenn alles ausgefüllt ist, klicke auf **"Submit for Review"**. Google prüft deine App, und das dauert in der Regel **1-3 Tage**. Bei der ersten App kann es etwas länger dauern. Du bekommst eine E-Mail, sobald die App freigegeben oder abgelehnt wurde.

Häufige Ablehnungsgründe bei Google:

- Unvollständiges Store Listing
- Fehlende Datenschutzerklärung
- App stürzt beim Start ab
- Irreführende Beschreibung

## iOS App veröffentlichen: Apple App Store

Der Apple-Weg ist etwas aufwändiger. Du brauchst einen Mac, Xcode und Geduld. Aber der App Store ist ein riesiger Markt, den du nicht ignorieren solltest. Die [Kosten für die App-Entwicklung](/blog/app-entwicklung-kosten-2026) amortisieren sich hier besonders gut, weil iOS-Nutzer statistisch mehr für Apps ausgeben.

### Schritt 1: Xcode konfigurieren

Öffne dein Flutter-Projekt in Xcode:

```bash
open ios/Runner.xcworkspace
```

In Xcode unter **Runner > Signing & Capabilities**:

1. Wähle dein **Team** (dein Apple Developer Account)
2. Stelle sicher, dass **Automatically manage signing** aktiviert ist
3. Prüfe die **Bundle Identifier**, muss mit deiner App übereinstimmen
4. Füge notwendige **Capabilities** hinzu (Push Notifications, In-App Purchases, etc.)

Falls du Probleme mit Signing-Zertifikaten hast: Gehe zu **Xcode > Settings > Accounts** und stelle sicher, dass dein Apple Developer Account korrekt eingerichtet ist. Xcode erstellt die benötigten Provisioning Profiles automatisch.

### Schritt 2: Release Build erstellen

```bash
flutter build ipa --release
```

Das erstellt eine `.ipa`-Datei unter `build/ios/ipa/`. Falls der Build fehlschlägt, prüfe:

- Ist Xcode aktuell?
- Stimmt die minimale iOS-Version in `ios/Podfile` (`platform :ios, '13.0'`)?
- Hast du `pod install` im `ios/`-Verzeichnis ausgeführt?

```bash
cd ios && pod install && cd ..
flutter build ipa --release
```

### Schritt 3: App in App Store Connect hochladen

Es gibt zwei Wege, die IPA zu Apple hochzuladen:

**Option A: Über Xcode (Transporter)**

```bash
# Öffne den Xcode Organizer
open build/ios/archive/Runner.xcarchive
```

Im Xcode Organizer: **Distribute App > App Store Connect > Upload**

**Option B: Über die Kommandozeile**

```bash
xcrun altool --upload-app --type ios \
  --file build/ios/ipa/deine_app.ipa \
  --apiKey DEIN_API_KEY \
  --apiIssuer DEIN_ISSUER_ID
```

Nachdem der Upload durch ist, erscheint der Build in [App Store Connect](https://appstoreconnect.apple.com) unter deiner App. Das kann ein paar Minuten dauern.

### Schritt 4: App Store Connect einrichten

In App Store Connect erstellst du dein App Listing:

- **App-Name** (max. 30 Zeichen)
- **Untertitel** (max. 30 Zeichen)
- **Beschreibung** (max. 4.000 Zeichen)
- **Keywords** (max. 100 Zeichen, kommagetrennt)
- **Screenshots** für alle unterstützten Gerätegrößen (iPhone 6.7", 6.5", 5.5", iPad)
- **App-Vorschau-Videos** (optional, aber empfohlen)
- **Datenschutzrichtlinie-URL** (Pflicht!)
- **Kontaktinformationen**
- **Altersfreigabe** (ähnlich wie bei Google)

### Schritt 5: TestFlight (optional, aber empfohlen)

Bevor du deine App zur Review einreichst, empfehle ich einen TestFlight-Test. TestFlight ist Apples Beta-Testing-Plattform:

1. Gehe in App Store Connect zu **TestFlight**
2. Wähle deinen Build
3. Füge interne oder externe Tester hinzu
4. Tester bekommen eine Einladung und können die App über die TestFlight-App installieren

Externe Tester benötigen einen kurzen Apple Review (1-2 Tage), interne Tester (dein Team) können sofort testen. Das ist deine letzte Chance, Bugs zu finden, bevor echte User die App sehen.

### Schritt 6: Submit for Review

Wenn alles bereit ist:

1. Gehe zu deiner App in App Store Connect
2. Wähle den Build unter **"Build"**
3. Fülle alle erforderlichen Felder aus
4. Klicke auf **"Submit for Review"**

Apple prüft die App manuell. Das dauert **1-7 Tage**, im Schnitt 24-48 Stunden. Apple ist strenger als Google, rechne damit, dass die erste Einreichung abgelehnt wird. Das ist normal und kein Grund zur Panik.

Häufige Ablehnungsgründe bei Apple:

- App stürzt ab oder hat offensichtliche Bugs
- Design entspricht nicht den Human Interface Guidelines
- Datenschutzrichtlinie fehlt oder ist unvollständig
- App-Beschreibung passt nicht zur tatsächlichen Funktionalität
- Login-basierte App ohne Demo-Account für den Reviewer

**Profi-Tipp:** Wenn deine App einen Login erfordert, gib in den Review-Notes einen Demo-Account an. Apple-Reviewer müssen jede Funktion testen können, sonst wird die App abgelehnt.

## Häufige Fehler beim Flutter App Veröffentlichen

Ich habe in den letzten Jahren dutzende Flutter-Apps in die Stores gebracht und dabei einiges gelernt. Hier sind die fünf häufigsten Fehler, die ich sehe:

### 1. Signing-Konfiguration vergessen

**Problem:** Der Release-Build schlägt fehl, weil die Signing-Konfiguration fehlt oder der Keystore nicht gefunden wird.

**Lösung:** Prüfe `key.properties` (Android) und die Signing-Konfiguration in Xcode (iOS). Teste den Release-Build lokal, bevor du hochlädst.

### 2. Screenshots in falscher Größe

**Problem:** Der Store lehnt die Screenshots ab, weil sie nicht den exakten Größenanforderungen entsprechen.

**Lösung:** Google verlangt mindestens Screenshots in 16:9 oder 9:16 mit mindestens 320 px an der kürzesten Seite. Apple braucht pixel-genaue Größen für jede Geräteklasse. Nutze Emulator-Screenshots oder Figma-Templates.

### 3. Vergessene Permissions in der Info.plist

**Problem:** Die App nutzt Kamera oder Standort, aber die Begründung fehlt in der `Info.plist` (iOS). Apple lehnt sofort ab.

**Lösung:** Für jede Permission in `ios/Runner/Info.plist` eine Begründung angeben:

```xml
<key>NSCameraUsageDescription</key>
<string>Wir benötigen Zugriff auf die Kamera für Profilfotos.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Wir nutzen deinen Standort, um Angebote in deiner Nähe anzuzeigen.</string>
```

### 4. Build Number nicht hochgezählt

**Problem:** Du lädst einen neuen Build hoch, aber der Store meldet "Build already exists".

**Lösung:** In `pubspec.yaml` die Build-Number erhöhen: `version: 1.0.0+2` statt `version: 1.0.0+1`. Die Build-Number muss bei **jedem** Upload steigen.

### 5. Datenschutzerklärung fehlt

**Problem:** Beide Stores verlangen mittlerweile eine Datenschutzerklärung. Ohne Link wird die App abgelehnt.

**Lösung:** Erstelle eine Datenschutzseite auf deiner Website und verlinke sie im Store Listing. Sie muss erklären, welche Daten du sammelst, wie du sie nutzt und wie Nutzer ihre Daten löschen können.

## Nach dem Release: Was jetzt?

Herzlichen Glückwunsch, deine App ist live! Aber die Arbeit hört hier nicht auf. Tatsächlich fängt sie jetzt erst richtig an.

### Crash Reporting einrichten

Bevor du dich zurücklehnst: Richte Crash Reporting ein, falls du es nicht schon getan hast. Firebase Crashlytics oder Sentry zeigen dir in Echtzeit, wenn Nutzer Probleme haben.

```yaml
# pubspec.yaml
dependencies:
  firebase_crashlytics: ^4.3.3
```

### Reviews und Bewertungen überwachen

Die ersten Reviews entscheiden über den Erfolg deiner App. Reagiere auf negatives Feedback schnell und professionell. Ein Bug-Fix innerhalb einer Woche zeigt Nutzern, dass du dich kümmerst.

### Updates planen

Plane regelmäßige Updates ein. Nicht nur für neue Features, sondern auch für:

- Bug-Fixes (die kommen garantiert)
- Betriebssystem-Updates (iOS und Android haben jährliche Major-Releases)
- Abhängigkeiten aktualisieren (Sicherheitsupdates!)

Für kritische Hotfixes kannst du [Code Push](/blog/code-push-updates-ohne-app-store) nutzen, um Updates ohne Store-Review direkt an Nutzer auszuliefern. Das spart dir im Ernstfall Tage.

### Analytics auswerten

Schau dir an, wie Nutzer deine App verwenden. Welche Features werden genutzt? Wo brechen Nutzer ab? Google Analytics, Firebase Analytics oder PostHog geben dir Einblicke, die für die Weiterentwicklung Gold wert sind.

## Fazit

Eine Flutter App zu veröffentlichen ist kein Hexenwerk, aber es ist auch kein Fünf-Minuten-Job. Der Prozess hat viele Schritte, und jeder davon kann schiefgehen, wenn man ihn zum ersten Mal macht. Die gute Nachricht: Nach der ersten App kennst du den Ablauf und es wird jedes Mal schneller.

Mein wichtigster Rat: **Fang früh an.** Lege die Developer-Accounts an, während du noch entwickelst. Bereite Screenshots vor, während du die letzten Features polierst. Und teste den Release-Build regelmäßig auf echten Geräten, nicht nur im Emulator.

Falls du Unterstützung beim Veröffentlichen deiner Flutter-App brauchst oder die gesamte [App-Entwicklung abgeben](/blog/app-entwickeln-lassen) möchtest, [meld dich bei mir](/kontakt). Ich helfe dir, deine App sauber in die Stores zu bringen.

---

*Hast du deine erste Flutter-App veröffentlicht? Was war die größte Hürde für dich? Schreib mir, ich bin gespannt auf deine Erfahrungen!*

## Häufig gestellte Fragen

<accordion>
<accordion-item icon="i-lucide-circle-help" label="Was kostet es, eine Flutter App zu veröffentlichen?">

Du brauchst einen Apple Developer Account für 99 $ pro Jahr und einen Google Play Console Account für einmalig 25 $. Die reinen Store-Gebühren sind also überschaubar. Dazu kommen eventuell Kosten für Screenshots, App-Store-Optimierung und die [laufenden Kosten](/blog/laufende-app-kosten) wie Hosting und Backend. Die eigentliche [App-Entwicklung](/blog/app-entwicklung-kosten-2026) ist der größte Kostenpunkt.

</accordion-item>

<accordion-item icon="i-lucide-circle-help" label="Wie lange dauert der Review-Prozess?">

Bei Google Play dauert das Review in der Regel 1-3 Tage, bei neuen Developer-Accounts manchmal bis zu 7 Tage. Apple braucht typischerweise 1-7 Tage, wobei die meisten Apps innerhalb von 24-48 Stunden geprüft werden. Für die allererste App in beiden Stores solltest du insgesamt 1-2 Wochen einplanen, inklusive eventueller Ablehnungen und Korrekturen.

</accordion-item>

<accordion-item icon="i-lucide-circle-help" label="Kann ich meine Flutter App gleichzeitig für Android und iOS veröffentlichen?">

Ja, das ist einer der großen Vorteile von Flutter: eine Codebase, zwei Stores. Du erstellst jeweils einen plattformspezifischen Build (`flutter build appbundle` für Android, `flutter build ipa` für iOS) und lädst ihn in den jeweiligen Store hoch. Die Store-Listings musst du separat pflegen, aber die App selbst ist identisch.

</accordion-item>

<accordion-item icon="i-lucide-circle-help" label="Meine App wurde abgelehnt, was jetzt?">

Keine Panik, das passiert häufig, besonders beim ersten Mal. Lies die Ablehnungsbegründung genau durch, beide Stores geben konkrete Hinweise, was zu korrigieren ist. Behebe das Problem, erhöhe die Build-Number und reiche die App erneut ein. Bei Apple kannst du über das Resolution Center auch direkt mit dem Reviewer kommunizieren und Fragen stellen.

</accordion-item>
</accordion>
