iOS App Store Review Richtlinien für IAP
Eine Einstellungsanleitung mit den Installationsanweisungen und der vollständigen Markdown-Dokumentation für diesen Plugin kopieren.
Um Ihr App auf dem App Store zu genehmigen, erfordert es sorgfältige Aufmerksamkeit 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 zu bestehen.

Bevor Sie Einreichen
Abschnitt mit dem Titel „Bevor Sie Einreichen“App Store Connect-Einrichtung abschließen
Abschnitt mit dem Titel „App Store Connect-Einrichtung abschließen“Bevor Apple Ihre Kaufablaufprüfung durchführt, stellen Sie sicher, dass das App-Record selbst vollständig ist:
- Ein Daten schutzrichtlinien URL im App Store Connect
- Hinzufügen eines Support URL eine, die zu echten Kontaktinformationen für Benutzer führt
- Abschließen des Alterseinstufung context: Seite/ Bereich: Lösungsseite App-Beispiele. Rolle: Kurzer UI-Label oder Navigationspunkt. Gesehen in: Komponenten Lösung/ SolutionAppExample.astro. Nachrichten Schlüssel `solution_app_examples_rating` (Lösung App Beispiele Bewertung).
- Fragebogen, damit die App veröffentlicht werden kann Hinzufügen Kontaktinformationen für App-Bewertungen
- und klare Notizen des Rezensenten Demo-Konto, das während der Überprüfung nicht abläuft
Vorbereitung echter Screenshots
Abschnitt mit dem Titel „Vorbereitung echter Screenshots“- Werden Sie Screenshots vom aktuellen Build verwenden, das derzeit der Überprüfung unterliegt
- Für iPhone
1290 x 2796(6,7 Zoll) ist die einfachste Standardgröße - Wenn Ihr App auf iPad läuft, sollten Sie auch iPad-Screenshots hochladen
- Die aktuellen akzeptierten großen iPad-Größen umfassen
2064 x 2752(13-Zoll) und2048 x 2732(12,9-Zoll) - Strecke iPhone-Bildschirme nie, um eine iPad-Unterstützung vorzutäuschen
Durchführen Sie die Rezensionsreise in TestFlight im Testmodus
Abschnitt mit dem Titel “Durchführen Sie die Rezensionsreise in TestFlight im Testmodus”Führen Sie den genauen Weg durch, den Apple auf einem realen 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 Paywall ohne versteckte Gesten oder Debug-Menüs
- Abschließen Sie die Kauf-, Wiederherstellungs- und Abonnement-Flüsse
- Überprüfen Sie, ob die App korrekt verhält, wenn die Berechtigungen abgelehnt werden
Anforderungen für In-App-Käufe
Abschnitt mit dem Titel ‘Zahlungsanforderungen für In-App-Käufe’Pricing-Transparenz (Kritisch)
Abschnitt mit dem Titel ‘Pricing-Transparenz (Kritisch)’Apple erfordert eine klare Preisoffenlegung vor jedem Kauf:
Must-Have-Elemente:
- Zeigen Sie den genauen Preis vor dem Kauf-Button an
- Zeigen Sie die Abrechnungs-Frequenz an (z.B. ‘9,99 €/Monat’)
- Stellen Sie klar, was die Benutzer für ihr Geld erhalten
- Anzeigen Sie, wann Gebühren anfallen
Gemeinsame Ablehnung:
‘Die Abonnement-Preise müssen klar und unmittelbar sein’
:::Vorsicht Preis-Konsistenz Alle Preise müssen übereinstimmen mit:
- App Store-Metadaten-Liste
- In-App-Kaufschirme
- Abonnementsverwaltungsschirme
Even a $1 discrepancy between store listing ($4.99) and app ($5.99) will trigger automatic rejection.
Abonnementplan-Präsentation
Abschnitt mit dem Titel “Abonnementplan-Präsentation”Erforderliche Offenlegungen:
- Alle verfügbaren Abonnementstufen werden zusammen angezeigt
- Eindeutige Vergleichbarkeit der Funktionen pro Stufe
- Keine automatische Zuweisung an Premiumstufen durch UI- Tricks
- Einfache, leicht zu lokalisierende Anweisungen zum Abbestellen

Beispiel für eine einvernehmliche Benutzeroberfläche:
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> );}Wiederherstellung von Kaufleistungen
Abschnitt mit dem Titel „Wiederherstellung von Kaufleistungen“Zwingende Implementierung:
Jedes App mit IAP muss eine Möglichkeit bieten, damit Benutzer ihre vorherigen Kaufleistungen ohne Unterstützung wiederherstellen können.
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-Crash oder defekte Funktionalität
Abschnitt mit dem Titel „1. App-Crash oder defekte Funktionalität“Warum es scheitert:
- Die App stürzt beim Start ab
- Der Kauffluss schlägt fehl
- Die in den Screenshots gezeigten Funktionen funktionieren nicht
Prävention:
- Testen Sie die App auf echten Geräten (nicht nur auf Simulatoren)
- Testen Sie alle Abonnement-Flüsse von Anfang bis Ende
- Überprüfen Sie, ob die Erhaltung der Zahlungsempfänger funktioniert
- Überprüfen Sie die Netzwerkfehlerbehandlung
2. Metadaten-Missverhältnisse
Abschnitt mit dem Titel "2. Metadaten-Missverhältnisse"Warum es scheitert:
- Bildschirmfotos zeigen Funktionen, die nicht im aktuellen Build enthalten sind
- Beschreibung erwähnt Funktionen, die nicht existieren
- Preise in den Metadaten stimmen nicht mit den In-App-Preisen überein

Verhütung:
// 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. Erklärungen für fehlende Berechtigungen
Abschnitt mit der Überschrift "3. Erklärungen für fehlende Berechtigungen"Warum es scheitert:
- Kamera/Standort/Gesundheitsdaten ohne Erklärung anfordern
- Berechtigungsanfragen mehrere Bildschirme tief verborgen
- Vage oder allgemeine Berechtigungsbeschreibungen
Verhinderung:
Aktualisieren Sie Ihre Info.plist mit klaren Erklärungen:
<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“Weshalb es scheitert:
- Behauptungen wie „Nummer 1-App in der Welt“ ohne Beweise
- „Unbegrenzte“ Funktionen mit versteckten Grenzen
- Falsche Dringlichkeits-Taktiken („Nur noch 2 Plätze frei!“)


Prävention:
- Seien Sie in Beschreibungen spezifisch und faktenbasiert
- Vermeiden Sie Superlativen ohne Beweise
- Drängen Sie die Benutzer nicht mit fiktiver Knappheit
5. Versteckter Stornierungsprozess
Abschnitt mit dem Titel „5. Versteckter Stornierungsprozess“Weshalb es scheitert:
- Keine Erwähnung der Stornierungsanleitung
- Stornierungsbutton versteckt oder behindert
- Multi-Schritt-Stornierungsprozess ohne Apple-native Flow
Verhinderung:
// 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 & Datenverwendung (Abschnitt 5.1.1)
Abschnitt mit dem Titel „Datenschutz & Datenverwendung (Abschnitt 5.1.1)“Apple hat die Datenschutzanforderungen 2025 erheblich verschärft.
Erforderliche Offenlegungen
Abschnitt mit dem Titel „Erforderliche Offenlegungen“Für jede Berechtigung:
- Warum Sie es benötigen (spezifischer Einsatzfall)
- Wenn es verwendet wird
- Wie Daten gespeichert/geshared werden
- Ob es optional oder erforderlich ist
Beispiel: Zutreffende Berechtigungsablauf
Abschnitt mit dem Titel “Beispiel: Zutreffende Berechtigungsablauf”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-Datenschutzetiketten genau wie folgt aussehen:
- Kaufhistorie-Sammlung
- E-Mail-Adressen (für Rechnungen)
- Geräte-IDs (für Betrugsprävention)
- Nutzungsdaten (für Analysen)
Unzutreffende Datenschutzetiketten sind ein häufiger Ablehnungsgrund im Jahr 2025. Überprüfen Sie Ihre Datensammlung sorgfältig.
Vorabreiche Liste
Vorab-Überprüfungsliste
-
Alle Kaufströme testen
- Jedes Abonnementstufe kaufen
- Freitriale testen
- Einleitungsboten korrekt überprüfen
- Wiederherstellungen von Kaufs testen
- Familienfreundliche Funktion (wenn aktiviert) überprüfen
- Auf mehreren Geräten testen
-
Preisgleichheit überprüfen
- App-Store-Metadaten mit In-App-Preisen abgleichen
- Alle Währungen sind korrekt
- Bestätigen Sie, dass die Dauer der kostenlosen Testversionen den Beschreibungen entspricht
- Überprüfen Sie, ob die Bedingungen für Einführungsangebote genau sind
-
Überprüfen Sie alle Kopien
- Löschen Sie Platzhaltertext
- Überprüfen Sie, ob Behauptungen getestet werden können
- Überprüfen Sie Grammatik und Rechtschreibung
- Stellen Sie sicher, dass Beschreibungen dem aktuellen Build entsprechen
- Löschen 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 die Beschreibungen in Info.plist
-
Vorbereiten Sie ein Testkonto
- Erstellen Sie ein Bewertungskonto, das während der Überprüfung gültig bleibt
- Dokumentieren Sie die Anmeldeinformationen in der App-Bewertungsinformation
- Überprüfen Sie, ob der Rezensent die Bezahlwand erreichen und den Kaufprozess abschließen kann
- Zu den Notizen fügen Sie zusätzliche Konten oder App-spezifische Schalter hinzu, wenn erforderlich
-
Überprüfen Sie die Metadaten
- Die Screenshots entsprechen der aktuellen Benutzeroberfläche
- Die Support-URL enthält echte Kontaktinformationen
- Die Datenschutzrichtlinien-URL ist ausgefüllt
- Die Altersfreigabe entspricht dem Inhalt im Build
- Die App-Vorschau-Video (wenn vorhanden) zeigt die aktuelle Version
- Beschreibung beschreibt genaue Funktionen
- Die Datenschutzerklärung ist in der App und im Store-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.
Bewertungszeitplan
Abschnitt mit dem Titel „Bewertungszeitplan“
Standard-Bewertung: 24-48 Stunden Hochsaisonzeiten: 3-5 Tage (Veröffentlichungen von App Store-Holiday-Releases) Wochenenden: No Reviews verarbeitet wurden Expedierter Review: Verfügbar für kritische Fehlerkorrekturen (Anfrage über App Store Connect)
Gemeinsame Status, die Sie in App Store Connect sehen werden:
Waiting for ReviewIn ReviewPending Developer ReleaseRejected
2026 Einreichungsschwerpunkt
Abschnitt mit dem Titel „2026 Einreichungsschwerpunkt“aktuelle Schwerpunktbereiche
Abschnitt mit dem Titel „aktuelle Schwerpunktbereiche“1. Abonnementklarheit
- Seitenseitige Vergleichsplanungen erforderlich
- Keine 'dunklen Muster', die günstigere Optionen verbergen
- Klare Ab- und Aufstiegswege
2. Genauigkeit der Metadaten
- Die Screenshots 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. Privatsphäre und Qualität der Bewertungsdetails
- Die Privatsphäreerklärungen müssen den tatsächlich von den SDKs gesammelten Daten entsprechen
- Die App-Bewertungs-Kontaktinformationen und -Anmerkungen sollten auf der ersten Einreichung vollständig sein
- Die Demo-Anmeldeinformationen müssen während der gesamten Bewertungszeit gültig bleiben
4. Einreichungsreife
- 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üferpfad vor der Einreichung zu überprüfen
Best Practices für den Native Purchases Plugin
Abschnitt mit dem Titel „Best Practices für den Native Purchases Plugin“Implementieren Sie eine ordnungsgemäße Fehlerbehandlung
Abschnitt mit dem Titel „Implementieren Sie eine ordnungsgemäße Fehlerbehandlung“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.'); } }}Anzeigen von Ladezuständen
Abschnitt mit dem Titel „Anzeigen von Ladezuständen“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> );}Zeigen Sie die Bedingungen klar an
Abschnitt mit dem Titel „Zeigen Sie die Bedingungen klar an“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 Behebung
Abschnitt mit dem Titel „Schritte zur Behebung“-
Lesen Sie die Ablehnung sorgfältig
- Notieren 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
- Beheben Sie nicht nur das Problem, sondern auch die Ursache
- Testen Sie die Behebung ausgiebig
- Dokumentieren Sie, was Sie geändert haben
-
Antwort 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. -
Wieder einreichen, sobald möglich
- Wiederinreichungen werden in der Regel schneller bearbeitet
- Häufig 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
- Stellen Sie ein klares Beweis vor:
- Screenshots, die die Einhaltung nachweisen
- Verweise auf spezifische Richtlinien
- Erklärung, wie Sie die Anforderungen erfüllen
- Seien Sie professionell und faktenbasiert
- Beifügen Sie ein Testkonto, wenn die Funktion schwer zu finden ist

Zusätzliche Ressourcen
Sektion mit dem Titel „Zusätzliche Ressourcen“- Apple App Store Review Richtlinien
- Richtlinien für In-App-Käufe
- Best Practices für Abonnements
- Hilfe für App Store Connect
- Anforderungen an Screenshots
- Plattformversionen
Unterstützung
UnterstützungUnterstützung
- Wenn Sie noch Probleme haben: Die
- Dokumentation zu Native Purchases Überprüfen Sie
- Häufige Fehler
Kontaktieren Sie die Apple-Entwicklerunterstützung für Klarstellungen zu Richtlinien
Brauchen Sie Fachexperten?Unterstützung benötigen Sie? Buchen Sie eine Beratungsruf 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
- Auflösung von Ablehnungen und Beschwerden
- Vollständige Testung und Validierung
Unsere Experten haben bereits erfolgreich Hunderte von Apps zur Zulassung gebracht!
Weitergehen von iOS App Store Review Guidelines für IAP
Abschnitt mit dem Titel “Weitergehen von iOS App Store Review Guidelines für IAP”Wenn Sie iOS App Store Review Guidelines für IAP verwenden für die Planung der Genehmigung und Verteilung im App Store, verbinden Sie es mit Verwenden Sie @capgo/native-purchases für die native Fähigkeit in Verwenden Sie @capgo/native-purchases für die Implementierungsdetail in @capgo/capacitor-in-app-review Verwenden Sie @capgo/capacitor-in-app-review für die native Fähigkeit in Verwenden Sie @capgo/capacitor-in-app-review für die Implementierungsdetail in @capgo/capacitor-native-market und Verwenden Sie @capgo/capacitor-native-market für die native Fähigkeit in Verwenden Sie @capgo/capacitor-native-market Using @capgo/capacitor-native-market for the native capability in Using @capgo/capacitor-native-market.