Zum Inhalt springen
WebViewGold Vibe Coding in den App Store
Deutsch
WebViewGold holen

App-Store-Ablehnung

Guideline 3.1.1 (In-App Purchase): Was tun, wenn Apple deinen Stripe-Checkout ablehnt

Deine Web-App rechnet über Stripe ab, und im Web ist das völlig in Ordnung. In der iOS-App verlangt Apple In-App-Käufe für alles Digitale, das in der App genutzt wird. Die Lösung ist nicht, Stripe rauszureißen, sondern den iOS-Build über RevenueCat StoreKit nutzen zu lassen, während das Web bei Stripe bleibt.

Ab $109 einmalig pro Plattform, oder unser Team erledigt alles ab $698.

  • Genehmigungsgarantie – oder Geld zurück innerhalb von 14 Tagen
  • Kein Programmieren nötig
  • Einmalzahlung, kostenlose Updates
  • 24/7 Support von echten Menschen
  • Made in Germany seit 2014 · ISO 27001

Was 3.1.1 sagt, in einfachen Worten

Wenn deine App Funktionen, Inhalte oder Dienste freischaltet, die innerhalb der App konsumiert werden (Abos, Premium-Stufen, KI-Credits, Vorlagen, Kurse), muss dieser Kauf über In-App Purchase (In-App-Kauf) laufen. Die Richtlinie verbietet außerdem Buttons, Links und Formulierungen in der App, die Nutzer zu einem anderen Zahlungsweg für diese digitalen Güter lenken. Apple wendet sie pro Storefront an, und es gibt regionale Ausnahmen (mehr dazu unten), aber für eine kleine App lautet die praktische Regel: Digitale Güter in der iOS-App laufen über IAP.

Lovable-, Bolt- und v0-Vorlagen verdrahten standardmäßig Stripe Checkout, und die KI setzt fröhlich einen "Upgrade for $9/month"-Button auf die Preisseite. Der Reviewer tippt darauf, sieht ein Stripe-Formular und schreibt die 3.1.1-Ablehnung. An deinem Geschäftsmodell ist nichts falsch; der Kanal in der App ist es.

Braucht dein Kauf In-App Purchase?

Was du verkaufstIn der iOS-AppGuideline
Abo für App-Funktionen, Premium-StufeIAP Pflicht3.1.1
KI-Credits, Tokens, GenerierungenIAP Pflicht (Consumable)3.1.1
Vorlagen, E-Books, Kurse, die in der App genutzt werdenIAP Pflicht3.1.1
Physische Waren und Dienstleistungen außerhalb der App (versandte Produkte, Essenslieferung, eine Reinigung vor Ort)Stripe oder jeder andere Zahlungsdienst erlaubt; IAP darf nicht verwendet werden3.1.3(e)
Echtzeit-Eins-zu-eins-Dienste zwischen zwei Personen (Nachhilfe, Beratung)Andere Zahlungsmethoden erlaubt; Eins-zu-viele muss IAP nutzen3.1.3(d)
Im Web gekaufte Inhalte, die nur in der App konsumiert werden (Reader-Apps: Bücher, Audio, Video, News)Dürfen ohne IAP freigeschaltet werden; keine Kauf-Buttons in der App und keine Links zum Kauf anderswo3.1.3(a)

Stelle den iOS-Build mit RevenueCat auf In-App-Kauf um

Stripe bleibt im Web; die App ruft ein einziges URL-Schema auf.

  1. Lege die Produkte in App Store Connect an

    Unterschreibe das Paid-Apps-Agreement (Account Holder) und lege dann das Abo oder Consumable mit einem Identifier wie pro_monthly an. Füge unter Users and Access einen Sandbox-Tester zum Testen hinzu.

  2. Richte RevenueCat und Config.swift ein

    Lege ein RevenueCat-Projekt an, importiere die Produkte und trage Key und Projekt-ID in revenueCatAPIKey und revenueCatProjectID in Config.swift ein. Die Bundle-ID in Xcode, App Store Connect und RevenueCat muss übereinstimmen. Komplette Anleitung: RevenueCat-Setup für Web-Wrapper-Apps und die In-App-Purchases-Doku.

  3. Lass die Web-App wissen, dass sie in der App läuft

    Setze useragent_iphone in Config.swift auf den Standard-User-Agent plus eine Markierung wie MyAppiOS und prüfe dann navigator.userAgent in deiner Web-App. In der App ersetzt du den Stripe-Button durch einen Link auf revenuecat://purchase?external_id=USER_ID&product=pro_monthly oder öffnest eine native Paywall mit revenuecat://launchPaywall?external_id=USER_ID&offering=default (ab iOS 15).

  4. Synchronisiere das Entitlement in dein Backend

    Nutze RevenueCat-Webhooks (oder die injizierten Variablen planID und transactionIdentifier), um den Plan am Nutzerdatensatz in Supabase oder Firebase zu setzen, damit derselbe Account im Web und in der App Premium ist.

  5. Füge Links zum Wiederherstellen und Verwalten hinzu

    Ein sichtbarer "Käufe wiederherstellen"-Link auf restoreinapppurchases:// und ein "Abo verwalten"-Link auf cancelinapppurchase://, der Apples Abo-Verwaltung öffnet. Reviewer erwarten beide.

  6. Entferne jeden Hinweis auf externe Zahlung aus der App

    Kein "günstiger auf unserer Website", kein Stripe-Billing-Portal, keine aus der App ausgelöste E-Mail mit "Upgrade auf yourdomain.com", keine Preisseite, die beides vergleicht. Lade dann einen neuen Build hoch und antworte im Resolution Center mit den Produkt-IDs.

Mein iOS WebView wurde endlich genehmigt. Danke!!

Taha Farooqui · CodeCanyon

Eine Kauffunktion für Web und App

Das Web behält Stripe; der iOS-Build leitet zu RevenueCat. Erkenne die App über die eigene User-Agent-Markierung.

javascript
// Config.swift: useragent_iphone = default UA + " MyAppiOS"
var isIosApp = navigator.userAgent.indexOf("MyAppiOS") !== -1;

function buy(productId, userId) {
  if (isIosApp) {
    // StoreKit via RevenueCat inside the WebViewGold app
    window.location.href = "revenuecat://purchase?external_id=" + encodeURIComponent(userId) + "&product=" + productId;
  } else {
    // Stripe Checkout on the web
    window.location.href = "/checkout?plan=" + productId;
  }
}

Externe Zahlungslinks: Die Regeln unterscheiden sich je nach Region

Die Regeln unterscheiden sich je nach Region. In den USA dürfen Apps im US-Storefront nach einem Gerichtsbeschluss von 2025 auf externe Kaufoptionen verlinken; die Europäische Union hat alternative Bedingungen unter dem Digital Markets Act; anderswo gilt die klassische Regel. Diese Regeln ändern sich und bringen eigene Hinweispflichten mit, prüfe also Apples aktuellen Text, bevor du dich darauf verlässt. Für eine Ein-Personen-App besteht IAP über RevenueCat das Review in jedem Storefront mit dem wenigsten Papierkram; die geschäftliche Seite behandelt der Entscheidungsguide Stripe vs. In-App-Kauf.

Häufig gestellte Fragen

Kann ich Stripe für die Web-Version behalten und IAP nur in der App nutzen?

Ja, das ist das normale Setup. Derselbe Account bekommt das Entitlement aus beiden Kanälen; dein Backend behandelt einen RevenueCat-Webhook und einen Stripe-Webhook gleich.

Kann ich die Preisseite in der App einfach ausblenden und Nutzer bitten, auf der Website zu abonnieren?

Den Kauf auszublenden ist bei Reader-Inhalten erlaubt, Nutzer in der App auf die Website zu verweisen nicht. Wenn es in der App selbst nichts zu kaufen gibt und sie nie woanders hinzeigt, akzeptieren Reviewer das in der Regel; die meisten Apps fahren mit IAP besser.

Brauchen Consumables wie KI-Credits wirklich IAP?

Ja. Credits, die in der App ausgegeben werden, sind digitale Inhalte. Lege sie als Consumable-In-App-Käufe an und schreibe das Guthaben in deinem Backend gut, sobald der RevenueCat-Webhook eintrifft.

Drei Wege, deine App in die Stores zu bringen

Gleiches Ergebnis, unterschiedlich viel Arbeit auf deiner Seite. Alle drei kommen mit Genehmigungsgarantie und 24/7 Support von echten Menschen.

Selbst machen

$109 pro Plattform, einmalig

Die WebViewGold-Lizenz: ein fertiges Xcode- oder Android-Studio-Projekt. URL einfügen, Name und Icon setzen, Features einschalten, bauen und einreichen. Kostenlose Updates für immer.

Pakete auf der Hauptseite ansehen

Full Service

$698 pro Plattform $798

Schick uns deine URL und dein Icon. Unser Team konfiguriert, baut und liefert deine App innerhalb von 72 Stunden, White-Label, inklusive Quellprojekten. Beide Plattformen für $1,158.

Full-Service-Details Powered by WeSetupYourWebViewApp

Winter-Sale-Preise gültig bis 31. Dezember 2026.

Bereit, deine App zu veröffentlichen?

App Store & Google Play Genehmigungsgarantie – oder Geld zurück innerhalb von 14 Tagen

Lieber abgeben? Full Service: Wir konfigurieren, bauen und liefern innerhalb von 72 Stunden, ab $698 pro Plattform. Fragen? Chatte mit uns – 24/7.

Erstattungen erfolgen zu den in unseren FAQ genannten Bedingungen: eine nicht inhaltsbedingte Ablehnung durch Apple und/oder Google, geltend gemacht innerhalb von 14 Tagen nach dem Kauf.