iOS App Store Review Richtlinien für IAP
Einen Einrichtungsvorschlag mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin kopieren.
Um Ihre App im App Store zu genehmigen, erfordert es sorgfältige Beachtung der Richtlinien von Apple, insbesondere bei der Implementierung von In-App-Käufen und Abonnements. Diese Anleitung deckt alles ab, was Sie wissen müssen, um die Überprüfung bei Ihrer ersten Einreichung erfolgreich zu bestehen.

Bevor Sie einreichen
Abschnitt mit dem Titel “Bevor Sie einreichen”Abschluss der App Store Connect-Einrichtung
Abschnitt mit dem Titel “Abschluss der App Store Connect-Einrichtung”Bevor Apple Ihren Kauffluss überprüft, stellen Sie sicher, dass das App-Record selbst vollständig ist:
- Fügen Sie ein URL der Datenschutzrichtlinie in App Store Connect
- Fügen Sie ein Support-URL hinzu der zu realen Kontaktinformationen für Benutzer führt
- Complete the Altersfreigabeerklärung Beantworte das Fragebogen, damit die App veröffentlicht werden kann
- Add Kontaktinformationen für App-Überprüfungen und klare Notizen für den Rezensenten Wenn ein Login erforderlich ist, stelle einen
- Demo-Konto bereit, das während der Überprüfung nicht abläuft Hinweis
Echte Bildschirmfotos vorbereiten
Abschnitt: "Echte Bildschirmfotos vorbereiten"- Verwenden Sie die aktuellen Bildschirmfotos aus dem tatsächlichen Build, der zur Überprüfung steht
- Für iPhone ist
1290 x 2796(6,7 Zoll) die einfachste Standardgröße - Wenn Ihre App auf iPad läuft, laden Sie auch iPad-Bildschirmfotos hoch
- Die aktuellen akzeptierten großen iPad-Größen umfassen
2064 x 2752(13 Zoll) und2048 x 2732(12,9 Zoll) - Strecken Sie iPhone-Bildschirmfotos nie, um eine fiktive iPad-Unterstützung vorzutäuschen
Durchführen Sie einen Trockentest der Rezensionsreise in TestFlight
Abschnitt: "Durchführen Sie einen Trockentest der Rezensionsreise in TestFlight"Führen Sie den genauen Pfad aus, den Apple auf einem echten Gerät verfolgt:
- Installieren Sie die neueste Version aus TestFlight
- Melden Sie sich mit dem Rezensionskonto an, das Sie bereitstellen möchten
- Erreichen Sie die Bezahlwand ohne versteckte Gesten oder Debug-Menüs
- Abschließen Sie Kauf-, Wiederherstellungs- und Abonnement-Flüsse
- Überprüfen Sie, ob die App korrekt verhält, wenn die Berechtigungen verweigert werden
Anforderungen für In-App-Käufe
Abschnitt mit dem Titel „Anforderungen für In-App-Käufe“Preisoffenlegung (Kritisch)
Abschnitt mit dem Titel „Preisoffenlegung (Kritisch)“Apple erfordert eine klare Preisoffenlegung vor jedem Kauf:
Pflichtelemente:
- Preis angeben, bevor der Kaufbutton angezeigt wird
- Rechnungsperiode anzeigen (z.B. „9,99 €/Monat“)
- Klare Aussage darüber, was Benutzer für ihr Geld bekommen
- Anzeigen, wann Gebühren anfallen
Häufige Ablehnung:
“Subscription pricing must be clear and upfront.”
:::Vorsicht Preis Konsistenz Alle Preise müssen übereinstimmen in:
- App Store-Metadaten-Liste
- In-App-Kaufschirm
- Abonnement-Verwaltungsschirm
Even ein 1 €-Widerspruch zwischen der Store-Liste (4,99 €) und der App (5,99 €) wird automatische Ablehnung auslösen. :::
Darstellung von Abonnementplänen
Abschnitt mit dem Titel „Abonnementplan-Präsentation“Erforderliche Offenlegungen:
- Alle verfügbaren Abonnementebenen werden gemeinsam angezeigt
- Klare Vergleichbarkeit der Funktionen pro Ebene
- Keine automatische Umleitung auf Premiumebenen durch UI-Trick
- Einfache, leicht zu lokalisierende Anweisungen zur Kündigung

Beispiel für eine konforme UI:
import { NativePurchases } from '@capgo/native-purchases';
function SubscriptionScreen() { return ( <div> <h2>Choose Your Plan</h2>
{/* Show all tiers equally */} <PlanCard title="Basic" price="$4.99/month" features={['Feature A', 'Feature B']} /> <PlanCard title="Premium" price="$9.99/month" features={['All Basic', 'Feature C', 'Feature D']} highlighted={false} // Don't force premium />
{/* Clear cancellation info */} <Text> Cancel anytime in Settings > Subscriptions. No refunds for partial periods. </Text> </div> );}Kaufleistungen wiederherstellen
Abschnitt mit dem Titel „Kaufleistungen wiederherstellen“Erforderliche Implementierung:
Jedes App mit IAP muss eine Möglichkeit bereitstellen, damit Benutzer vorherige Kaufs anhand von vorherigen Einkäufen wiederherstellen können, ohne das Support zu kontaktieren.
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
async function restorePurchases() { try { await NativePurchases.restorePurchases();
const { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS, });
const activeSub = purchases.find( (purchase) => purchase.isActive && purchase.expirationDate, );
if (activeSub) { unlockPremiumFeatures(); showMessage('Purchases restored successfully!'); return; }
const { purchases: iaps } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.INAPP, }); const hasIap = iaps.some((purchase) => purchase.productIdentifier === 'premium_unlock');
showMessage( hasIap ? 'Premium purchase restored!' : 'No previous purchases found.', ); } catch (error) { showError('Failed to restore purchases. Please try again.'); }}
// Add a visible "Restore Purchases" button<Button onClick={restorePurchases}> Restore Purchases</Button>Häufige Ablehnungsgründe
Abschnitt mit dem Titel „Häufige Ablehnungsgründe“1. App stürzt ab oder Funktionen sind beschädigt
Abschnitt mit dem Titel „1. App stürzt ab oder Funktionen sind beschädigt“Warum es scheitert:
- Die App stürzt beim Start ab
- Der Kauffluss schlägt fehl
- Die in den Screenshots gezeigten Funktionen funktionieren nicht
Verhütung:
- Testen Sie auf echten Geräten (nicht nur auf Simulatoren)
- Testen Sie alle Abonnement-Flüsse von Anfang bis Ende
- Überprüfen Sie die Gültigkeit von Erhaltungen
- Überprüfen Sie die Fehlerbehandlung bei Netzwerkfehlern
2. Metadaten-Missverhältnisse
Abschnitt mit dem Titel “2. Metadaten-Missverhältnisse”Warum es scheitert:
- Bildschirme zeigen Funktionen, die nicht im aktuellen Build enthalten sind
- Beschreibung erwähnt Funktionen, die nicht existieren
- Preise in den Metadaten unterscheiden sich von den in-App-Preisen

Prävention:
// Document exactly what's in each tierconst SUBSCRIPTION_FEATURES = { basic: ['Ad-free', 'Cloud sync', 'Basic themes'], premium: ['Ad-free', 'Cloud sync', 'All themes', 'Priority support']};
// Use these in both your app AND App Store description3. Fehlende Erlaubniserklärungen
Abschnitt mit dem Titel „3. Fehlende Erlaubniserklärungen“Warum es scheitert:
- Kamera/Standort/Gesundheitsdaten anfordern ohne Erläuterung
- Erlaubnisanfragen in mehreren Bildschirmen tief verborgen
- Vage oder allgemeine Erlaubnisbeschreibungen
Verhütung:
Aktualisieren Sie Ihr Info.plist mit klaren Erläuterungen:
<key>NSCameraUsageDescription</key><string>Camera access is needed to scan product barcodes for quick subscription upgrades.</string>
<key>NSLocationWhenInUseUsageDescription</key><string>Location helps us show relevant local content in your Premium subscription.</string>4. Irreführende Werbung
Abschnitt mit dem Titel „4. Irreführende Werbung“Warum es scheitert:
- Behauptungen wie „Nummer 1-App in der Welt“ ohne Beweise
- „Unbegrenzte“ Funktionen mit versteckten Grenzen
- Taktiken mit fiktiver Dringlichkeit („Nur noch 2 Plätze frei!“)


Vorbeugung:
- Seien Sie spezifisch und faktisch in Beschreibungen
- Vermeiden Sie Superlativen ohne Beweise
- Dränge die Benutzer nicht mit falscher Knappheit
5. Versteckter Stornierungsprozess
Abschnitt mit dem Titel „5. Versteckter Stornierungsprozess“Warum es scheitert:
- Keine Angabe, wie man stornieren kann
- Stornierungsbutton versteckt oder behindert
- Mehrschrittiger Stornierungsprozess ohne Apple-Fluss
Prävention:
// Always inform users about cancellationfunction SubscriptionInfo() { return ( <div> <h3>How to Cancel</h3> <ol> <li>Open iPhone Settings</li> <li>Tap your name at the top</li> <li>Tap Subscriptions</li> <li>Select this app and tap Cancel</li> </ol>
<p>Or manage directly in the App Store app.</p>
<Button onClick={openSubscriptionManagement}> Manage Subscription in Settings </Button> </div> );}
async function openSubscriptionManagement() { // Direct link to iOS subscription management await NativePurchases.showManageSubscriptions();}Datenschutz und -nutzung (Abschnitt 5.1.1)
Abschnitt mit dem Titel „Datenschutz und -nutzung (Abschnitt 5.1.1)“Apple hat die Datenschutzanforderungen 2025 erheblich verschärft.
Zwingende Offenlegungspflichten
Abschnitt mit dem Titel „Zwingende Offenlegungspflichten“Für jede Erlaubnis:
- Warum Sie es benötigen (spezifischer Einsatzfall)
- Wenn es verwendet wird
- Wie Daten gespeichert/geshared werden
- Ob es optional oder erforderlich ist
Beispiel: Ordentliche Erlaubnis-Fluss
Abschnitt mit dem Titel „Beispiel: Ordentlicher Erlaubnis-Fluss“async function requestCameraPermission() { // Show explanation BEFORE requesting await showDialog({ title: 'Camera Access', message: 'We need camera access to let you scan barcodes for quick product lookup. Your photos are never uploaded or stored.', buttons: ['Not Now', 'Allow'] });
// Then request permission const result = await Camera.requestPermissions(); return result.camera === 'granted';}Datenschutz-Nährwertetiketten
Abschnitt mit dem Titel „Datenschutz-Nährwertetiketten“Stellen Sie sicher, dass Ihre App-Store-Privatsphäre-Etiketten genau wie folgt aussehen:
- Kaufhistorie-Sammlung
- E-Mail-Adressen (für Rechnungen)
- Geräte-IDs (für Betrugsprävention)
- Verwendungsdaten (für Analysen)
Unzutreffende Privatsphäre-Etiketten sind eine häufige Ablehnungsgrundlage im Jahr 2025. Überprüfen Sie Ihre Datensammlung sorgfältig.
Vor-Abgabeverifizierung
Abschnitt mit dem Titel “Vor-Abgabeverifizierung”
-
Testen Sie alle Kaufflüsse
- Kostenlosen Versuch
- Kostenlosen Versuch
- Überprüfen Sie, ob die Einführungsangebote korrekt angewendet werden
- Testen Sie die Wiederherstellung von Kaufleistungen
- Überprüfen Sie die Familienfreigabe (wenn aktiviert)
- Testen Sie auf mehreren Geräten
-
Überprüfen Sie die Preisgerechtigkeit
- Überprüfen Sie, ob die App-Store-Metadaten mit den in-app-Preisen übereinstimmen
- Überprüfen Sie, ob alle Währungen korrekt sind
- Bestätigen Sie, dass die Dauer der kostenlosen Probezeit den Beschreibungen entspricht
- Überprüfen Sie, ob die Bedingungen der Einführungsangebote genau sind
-
Überprüfen Sie alle Kopien
- Entfernen Sie den Platzhaltertext
- Überprüfen Sie, ob die Behauptungen testbar sind
- Überprüfen Sie Grammatik und Rechtschreibung
- Stellen Sie sicher, dass Beschreibungen der aktuellen Build entsprechen
- Entfernen Sie Erwähnungen von Konkurrenten
-
Testen Sie Berechtigungen
- Fordern Sie nur notwendige Berechtigungen an
- Zeigen Sie klare Erklärungen vor der Anfrage an
- Testen Sie 'Ablehnen'-Flüsse (die App sollte weiterhin funktionieren)
- Überprüfen Sie, ob die Beschreibungen in Info.plist klar sind
-
Vorbereiten Sie ein Testkonto
- Erstellen Sie ein Rezensionskonto, das während der Rezension gültig bleibt
- Dokumentieren Sie Anmeldeinformationen in der App-Bewertungsinformation
- Überprüfen Sie, ob der Rezensent den Paywall erreichen und den Kaufprozess abschließen kann
- Fügen Sie zusätzliche Konten oder App-spezifische Schalter in der Notes-Feld, wenn erforderlich
-
Überprüfen Sie die Metadaten
- Bildschirminhalte entsprechen der aktuellen Benutzeroberfläche
- Die Support-URL enthält reale Kontaktinformationen
- Die URL der Datenschutzrichtlinie ist ausgefüllt
- Die Altersfreigabe entspricht dem Inhalt im Build
- Die App-Videovorschau (wenn vorhanden) zeigt die aktuelle Version
- Die Beschreibung beschreibt die Funktionen genau
- Die Datenschutzrichtlinie ist in der App und im Laden-Listing zugänglich
-
Schreiben Sie detaillierte Notizen für die Bewertung
Contact:Name: Jane DeveloperEmail: review@yourapp.comPhone: +1 555-0100Test Account:Email: reviewer@test.comPassword: TestPass123!This account does not expire during review.Testing Instructions:1. Log in with test account above2. Tap "Upgrade to Premium" button3. Select "Monthly Premium" subscription4. Complete purchase (no charge in sandbox)5. Verify premium features unlockNote: Subscription pricing is clearly shown before purchase.Cancellation instructions are in Settings > Account.
Bewertungszeitlinie
Abschnitt mit dem Titel “Überprüfungszeitplan”
Standard-Überprüfung: 24-48 Stunden Hochbelastungszeiträume: 3-5 Tage (App Store-Holiday-Veröffentlichungen) Wochenenden: Keine Überprüfungen verarbeitet Geschwindige Überprüfung: Verfügbar für kritische Fehlerbehebungen (Anfrage über App Store Connect)
Gemeinsame Status, die Sie in App Store Connect sehen werden:
Waiting for ReviewIn ReviewPending Developer ReleaseRejected
2026 Submission Focus
Abschnitt: "2026 Submission Focus"Aktuelle Schwerpunktbereiche
Abschnitt: "Aktuelle Schwerpunktbereiche"1. Abonnementklarheit
- Seitliche Vergleiche von Planvergleichen erforderlich
- Keine " dunklen Muster", die günstigere Optionen verbergen
- Klare Ab- und Aufstiegswege
2. Metadatengenauigkeit
- Bildschirmfotos müssen dem zu überprüfenden Build entsprechen
- iPad-Screenshots sind erforderlich, wenn iPad-Unterstützung aktiviert ist
- Die Support-URL und die Datenschutzrichtlinie sollten bereits vor der Einreichung live sein
3. Datenschutz und Bewertungsdetailqualität
- Die Datenschutzmitteilungen müssen den tatsächlich von Ihren SDKs gesammelten Daten entsprechen
- Die Kontaktinformationen und Notizen für App Review sollten auf der ersten Einreichung vollständig sein
- Die Demo-Anmeldeinformationen müssen während der gesamten Bewertungszeit gültig bleiben
4. Einreichereife
- Apple updates minimum SDK requirements regularly, so confirm the current deadline before uploading a release build
- TestFlight ist der sichere Ort, um den genauen Prüferweg vor der Einreichung zu überprüfen
Best Practices für den Plugin für Native Einkäufe
Sektion mit dem Titel „Best Practices für den Plugin für Native Einkäufe“Proper Error-Handling implementieren
Abschnitt mit dem Titel „Eigene Fehlerbehandlung Implementieren“import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
async function handlePurchase(productId: string) { try { const transaction = await NativePurchases.purchaseProduct({ productIdentifier: productId, productType: PURCHASE_TYPE.SUBS, });
// Success await validateReceiptOnServer(transaction.receipt); showSuccess('Subscription activated!'); unlockFeatures();
} catch (error: any) { // Handle specific error cases if (error.code === 'USER_CANCELLED') { // User cancelled - don't show error console.log('Purchase cancelled by user'); } else if (error.code === 'PAYMENT_PENDING') { showInfo('Payment is pending. Please check back later.'); } else if (error.code === 'PRODUCT_ALREADY_PURCHASED') { // Restore instead await NativePurchases.restorePurchases(); } else { // Show user-friendly error showError('Unable to complete purchase. Please try again.'); } }}Laden Sie den Status an
Abschnitt mit dem Titel „Laden Sie den Status an“function PurchaseButton({ productId }: { productId: string }) { const [loading, setLoading] = useState(false);
const handlePurchase = async () => { setLoading(true); try { await NativePurchases.purchaseProduct({ productIdentifier: productId }); } finally { setLoading(false); } };
return ( <button onClick={handlePurchase} disabled={loading}> {loading ? 'Processing...' : 'Subscribe Now'} </button> );}Begriffe Offen Darstellen
Abschnitt mit dem Titel „Begriffe Offen Darstellen“function SubscriptionTerms() { return ( <div className="terms"> <p> Subscription automatically renews unless cancelled at least 24 hours before the end of the current period. </p> <p> Your account will be charged for renewal within 24 hours prior to the end of the current period. </p> <p> Subscriptions may be managed by the user and auto-renewal may be turned off in Account Settings after purchase. </p> <p> <a href="/terms">Terms of Service</a> | <a href="/privacy">Privacy Policy</a> </p> </div> );}Wenn Ihre App Abgelehnt Wird
Abschnitt mit dem Titel „Wenn Ihre App Abgelehnt Wird“Schritte zur Lösung
Abschnitt mit dem Titel „Schritte zur Lösung“-
Lesen Sie die Ablehnung sorgfältig
- Beachten Sie die spezifische Richtlinie, die zitiert wird (z.B. 3.1.1, 5.1.1)
- Verstehen Sie genau, was Apple beanstandet hat
-
Beheben Sie das Problem gründlich
- Heben Sie nicht nur ein Loch auf - beheben Sie die Ursache
- Überprüfen Sie den Fix ausgiebig
- Dokumentieren Sie, was Sie geändert haben
-
Antworten Sie im Resolution Center
Thank you for your feedback. I have addressed the issue:Issue: Subscription pricing not clear upfrontFix: Added explicit pricing display on subscription selectionscreen showing "$9.99/month" before purchase button. Also addedcancellation instructions on the same screen.The changes are in this submission and can be tested using theprovided test account. -
Bewerben Sie sich schnellstmöglich erneut
- Wiederbewerbungen werden in der Regel schneller geprüft
- In der Regel innerhalb von 24 Stunden
Berufungsverfahren
Abschnitt mit dem Titel „Berufungsverfahren”Wenn Sie glauben, dass die Ablehnung falsch ist:

- Klicken Sie auf „Berufung“ in App Store Connect
- Bieten Sie klare Beweise an:
- Bildschirmfotos, die die Einhaltung nachweisen
- Verweise auf spezifische Richtlinien
- Erklärung, wie Sie die Anforderungen erfüllen
- Seien Sie professionell und faktenbasiert
- Fügen Sie ein Testkonto hinzu, wenn die Funktionalität schwer zu finden ist

Zusätzliche Ressourcen
Abschnitt mit dem Titel „Zusätzliche Ressourcen”- Apple App Store Review Richtlinien
- In-App-Kaufrichtlinien
- Best Practices für Abonnements
- Hilfe zu App Store Connect
- Bildschirmfotospezifikationen
- Plattformversionen
Wenn Sie weiterhin Probleme haben:
- Überprüfen Sie Native Purchases Dokumentation
- Überprüfen Gemeinsame Fehlerbehebungsprobleme
- Kontaktieren Sie den Apple-Entwickler-Service für Klarstellungen der Richtlinien
Brauchen Sie Expertenhilfe?
Abschnitt mit dem Titel „Brauchen Sie Expertenhilfe?“Haben Sie Schwierigkeiten bei der App-Bewertung oder benötigen Sie eine persönliche Unterstützung? Buchen Sie einen Beratungstermin mit unserem Team für eine dedizierte Unterstützung mit:
- Überprüfung und Optimierung der IAP-Implementierung
- Vorbereitung und Strategie für die App-Store-Bewertung
- Überprüfung des Einreichungschecklisten
- Widerstandsaufhebungsverfahren und Beschwerden
- Vollständige Testung und Validierung
Unsere Experten haben bereits hunderte von Apps erfolgreich bei der Überprüfung unterstützt!