iOS App Store Review Richtlinien für IAP
Kopieren Sie einen Einrichtungsvorschlag mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin.
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. Dieser Leitfaden deckt alles ab, was Sie wissen müssen, um die Überprüfung auf 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 Ihren Kaufprozess überprüft, stellen Sie sicher, dass das App-Record selbst vollständig ist:
- Ein Datenschutzrichtlinien-URL in App Store Connect
- Hinzufügen eines Support-URL eine URL, die zu echten Kontaktinformationen für Benutzer führt
- Das Fragebogen so abschließen, dass die App veröffentlicht werden kann Hinzufügen App-Bewertungs-Kontaktinformationen
- und klare Notizen des Rezensenten Wenn ein Login erforderlich ist, stellen Sie sicher, dass Sie eine __CAPGO_KEEP_0__
- eine __CAPGO_KEEP_0__ __CAPGO_KEEP_0__
Vorbereitung echter Screenshots
Abschnitt mit dem Titel „Vorbereitung echter Screenshots“- Verwenden Sie Screenshots aus dem aktuellen Build, das derzeit unter Review steht
- Für iPhone ist die Größe (6,7 Zoll) die einfachste Standardgröße
1290 x 2796Wenn Ihre App auf iPad läuft, sollten Sie auch iPad-Screenshots hochladen - Die aktuellen akzeptierten großen iPad-Größen umfassen
- protectedTokens
2064 x 2752(13-Zoll) und2048 x 2732(12,9-Zoll) - Strecke keine iPhone-Bildschirme, um eine iPad-Unterstützung vorzutäuschen
Durchführen Sie einen Trockenlauf durch die Rezensionsreise in TestFlight
Abschnitt mit dem Titel “Durchführen Sie einen Trockenlauf durch die Rezensionsreise in TestFlight”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 verweigert werden
Anforderungen für In-App-Käufe
Abschnitt mit dem Titel „Zahlungsanforderungen innerhalb der App”Preisoffenlegung (Kritisch)
Abschnitt mit dem Titel „Preisoffenlegung (Kritisch)”Apple verlangt eine klare Preisoffenlegung vor jedem Kauf:
Pflichtelemente:
- Zeigen Sie den genauen Preis vor dem Kaufknopf an
- Zeigen Sie die Abrechnungshäufigkeit (z. B. „9,99 €/Monat“) an
- Stellen Sie klar, was die Benutzer für ihr Geld erhalten
- Anzeigen Sie, wann Gebühren anfallen
Häufige Ablehnung:
„Die Abonnementpreise müssen klar und unmittelbar sein.”
:::Vorsicht Preis-Konsistenz Alle Preise müssen übereinstimmen mit:
- App Store-Metadaten-Liste
- In-App-Kaufschirme
- Abonnementsverwaltungsschirme
Ein Betrag von nur 1 $ zwischen der Ladenliste (4,99 $) und der App (5,99 $) wird automatisch zur Ablehnung führen.
Abonnementplan-Präsentation
Abschnitt mit der Überschrift „Abonnementplan-Präsentation“Erforderliche Offenlegungen:
- Alle verfügbaren Abonnementebenen werden gemeinsam angezeigt
- Klare Vergleichbarkeit der Funktionen pro Ebene
- Keine automatische Zuweisung zu Premium-Ebenen durch UI- Tricks
- Einfache, leicht zu lokalisierende Anweisungen zur Kündigung

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> );}Käufe wiederherstellen
Abschnitt mit dem Titel „Käufe wiederherstellen“Erforderliche Implementierung:
Jedes App mit IAP muss eine Möglichkeit bieten, damit Benutzer ihre vorherigen Käufe 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 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
Prävention:
- Testen Sie die App auf echten Geräten (nicht nur auf Simulatoren)
- Testen Sie alle Abonnements-Flüsse von Anfang bis Ende
- Überprüfen Sie, ob die Erhaltung der Belege funktioniert
- Überprüfen Sie die Netzwerkfehlerbehandlung
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 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. Fehlende Erlaubnis-Erklärungen
Abschnitt mit der Überschrift „3. Fehlende Erlaubnis-Erklärungen“Warum es scheitert:
- Kamera/Standort/Gesundheitszugriff ohne Erklärung anfordern
- Erlaubnisanfragen in mehreren Bildschirmen tief vergraben
- Vage oder allgemeine Erlaubnisbeschreibungen
Prävention:
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 Dringlichkeitstaktiken („Nur noch 2 Plätze frei!“)


Vermeidung:
- Beschreibungen spezifisch und faktenbasiert halten
- Vermeide Superlativen ohne Beweise
- Dränge die Benutzer nicht mit fiktiver Knappheit
5. Versteckter Stornierungsprozess
Abschnitt mit dem Titel "5. Versteckter Stornierungsprozess"Warum es scheitert:
- Keine Erwähnung der Stornierung
- Stornierungsknopf versteckt oder behindert
- Mehrschrittiger Stornierungsprozess ohne Apples nativen Flow
Verhütung:
// 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/geschützt werden
- Ob es optional oder erforderlich ist
Beispiel: Richtige Berechtigungsablauf
Abschnitt mit dem Titel “Beispiel: Richtige 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 folgende Informationen widerspiegeln:
- Kaufhistorie-Sammlung
- E-Mail-Adressen (für Rechnungen)
- Geräte-IDs (für Betrugsprävention)
- Verwendungsdaten (für Analysen)
Unzutreffende Datenschutzetiketten sind eine häufige Ablehnungsgrundlage im Jahr 2025. Überprüfen Sie Ihre Datensammlung sorgfältig.
Vor-Abgabeverifikationsliste
Abschnitt mit dem Titel “Überprüfungsliste vor der Einreichung”
-
Alle Kaufströme testen
- Jedes Abonnementstiefe kaufen
- Freitriale testen
- Einführende Angebote korrekt anwenden
- 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 Testversion den Beschreibungen entspricht
- Überprüfen Sie, ob die Bedingungen für die Einführungsangebote genau sind
-
Überprüfen Sie alle Kopien
- Entfernen Sie Platzhaltertext
- Überprüfen Sie, ob die Behauptungen getestet werden können
- Überprüfen Sie Grammatik und Rechtschreibung
- Stellen Sie sicher, dass die Beschreibungen der aktuellen Version entsprechen
- Entfernen Sie Erwähnungen von Konkurrenten
-
Testen Sie Berechtigungen
- Bitten Sie nur notwendige Berechtigungen an
- Zeigen Sie klare Erklärungen vor der Anfrage an
- Testen Sie die '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 Paywall erreichen und den Kauffluss abschließen kann
- Fügen Sie zusätzliche Konten oder App-spezifische Schalter in der Anmerkungsfeld auf, wenn erforderlich
-
Überprüfen Sie die Metadaten
- Bildschirme passen der aktuellen Benutzeroberfläche
- Support-URL enthält echte Kontaktinformationen
- URL der Datenschutzrichtlinie ist ausgefüllt
- Die Altersfreigabe entspricht dem Inhalt im Build
- App-Vorschau-Video (falls vorhanden) zeigt die aktuelle Version
- Beschreibung beschreibt genaue Funktionen
- Datenschutzrichtlinie ist in der App und im Laden einsehbar
-
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 Hochbetriebstage: 3-5 Tage (Veröffentlichungen von App Store-Holiday-Apps) Wochenenden: Keine Bewertungen verarbeitet Beschleunigte Bewertung: 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
Fokus 2026
Abschnitt mit dem Titel „Fokus 2026“Aktuelle Schwerpunktbereiche
Abschnitt mit dem Titel „Aktuelle Schwerpunktbereiche“1. Klarheit bei Abonnements
- Seitlich angezeigte Vergleichspläne erforderlich
- Keine 'dunklen Muster', die günstigere Optionen verbergen
- Klare Abstiegs- 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 aktiv sein
3. Privatsphäre und Qualität der Review-Detail
- Die Privatsphäreerklärungen müssen den tatsächlich von den SDKs gesammelten Daten entsprechen
- Die App-Review-Kontaktinformationen und -Anmerkungen sollten auf der ersten Einreichung vollständig sein
- Die Demo-Anmeldeinformationen müssen während der gesamten Review-Frist 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 die genaue Rezensionsroute vor der Einreichung zu überprüfen
Best Practices für den Native-Kauf-Plugin
Abschnitt mit dem Titel “Best Practices für den Native-Kauf-Plugin”Proper Error-Handling implementieren
Abschnitt mit dem Titel “Proper Error-Handling 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.'); } }}Anzeige von Ladezuständen
Abschnitt mit dem Titel “Anzeige 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> );}Bedingungen offensichtlich darstellen
Abschnitt mit dem Titel “Bedingungen offensichtlich 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 Behebung
Abschnitt mit dem Titel „Schritte zur Behebung“-
Die Ablehnung sorgfältig lesen
- Den spezifischen Richtlinienverweis (z. B. 3.1.1, 5.1.1) festhalten
- Genau wissen, was Apple beanstandet hat
-
Den Fehler gründlich beheben
- Nicht nur ein Pflaster anbringen – den Grundursache beheben
- Den Fix ausgiebig testen
- Dokumentieren, 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 eindeutige Beweise 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
- Bildschirmfoto-Spezifikationen
- Plattformversionen
Unterstützung
UnterstützungUnterstützung
- Überprüfen Sie Dokumentation zu Native Purchases
- Überprüfen Sie Gemeinsame Fehlerbehebungsprobleme
- Kontaktieren Sie die Apple-Entwicklerunterstützung für Klarstellungen zu Richtlinien
Brauchen Sie Fachexperten-Hilfe?
UnterstützungBenötigen Sie Fachexperten-Hilfe? Ein Beratungstermin buchen mit unserem Team zur Unterstützung mit:
- IAP-Implementierungsbewertung und -Optimierung
- Vorbereitung und Strategie für die App-Store-Bewertung
- Überprüfung des Einreichungschecklisten
- Rejektionsbeilegung und Beschwerdeverfahren
- Komplettprüfung und -validierung
Unsere Experten haben bereits erfolgreich Hunderte von Apps zur Zulassung gebracht!
Fortsetzung aus iOS App Store Review Guidelines für IAP
Abschnitt mit dem Titel “Fortsetzung aus 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.