Erstellen Sie eine iOS-Abonnementgruppe
Einen Setup-Befehl mit den Installationsanweisungen und der vollständigen Markdown-Dokumentation für diesen Plugin kopieren.
Abonnement-Gruppen sind für die Organisation und Verwaltung mehrerer Abonnement-Ebenen in Ihrer iOS-Anwendung unerlässlich. Um die Funktionalität zur Upgrade, Downgrade und Crossgrade zu implementieren, ist ein Verständnis ihrer Funktionsweise unerlässlich.
Was ist eine Abonnement-Gruppe?
Abschnitt mit dem Titel “Was ist eine Abonnementgruppe?”Eine Abonnementgruppe ist eine Sammlung von verwandten Abonnements, zwischen denen sich Benutzer entscheiden können. Benutzer können nur ein Abonnement innerhalb einer Gruppe gleichzeitig abonnieren. Wenn sie das Abonnement ändern, übernimmt Apple die automatische Übergabe.
Warum Abonnementgruppen wichtig sind
Abschnitt mit dem Titel “Warum Abonnementgruppen wichtig sind”Abonnementgruppen ermöglichen:
- Stufengerechte Preisgestaltung: Grundlegende, Premium- und Ultimate-Pläne anbieten
- Verschiedene Laufzeiten: Monatliche, jährliche und lebenslange Optionen
- Upgrade/Downgrade-Logik: Automatische Verwaltung von Abonnementänderungen
- Einfache Verwaltung: Gruppen verwandter Abonnements zusammenfassen
Abonnementebenen
Abschnitt mit dem Titel „Abonnementebenen“Innerhalb einer Gruppe sollten jedes Abonnement nach Wertigkeit von höchster (Ebene 1) bis niedrigster Wertigkeit geordnet werden. Diese Rangordnung bestimmt, wie Abonnementänderungen klassifiziert werden:

Beispiel für Ebenen
Abschnitt mit dem Titel „Beispiel für Ebenen“Ebene 1 (Höchster Wert)
- Premium-Jahresabonnement (99,99 €/Jahr)
- Ultimatives Monatsabonnement (19,99 €/Monat)
Ebene 2 Mittelwert
- Standardjährlich (49,99 €/Jahr)
- Premium monatlich (9,99 €/Monat)
Level 3 Niedrigster Wert
- Basic jährlich (29,99 €/Jahr)
- Standard monatlich (4,99 €/Monat)
Abonnementänderungstypen
AbonnementänderungstypenApple handhabt drei Arten von Abonnementänderungen automatisch basierend auf der Level-Rangfolge:
1. Upgrade
1. UpgradeAuf ein höheres Abonnement (z.B. Level 2 → Level 1) wechseln. Abonnementstufe Verhalten:
Wirkt sofort
- Benutzer erhält einen anteiligen Rückerstattungsbetrag für die verbleibende Zeit
- Neues Abonnement beginnt sofort Beispiel: Zurücksetzen in die Zwischenablage
- __CAPGO_KEEP_0__
__CAPGO_KEEP_1__
// User currently has: Standard Monthly (Level 2)// User upgrades to: Premium Annual (Level 1)// Result: Immediate access to Premium, refund for unused Standard time2. Downgrade
Abschnitt mit dem Titel “2. Downgrade”Wechsel zu einem unteren Tarifplan (z.B. Level 1 → Level 2). Verhalten:
Wirkt ab
- nächster Verlängerungsdatum Benutzer behält aktuelle Abonnement bis zum Ende der Laufzeit
- Neues Abonnement startet automatisch nach Ablauf
- Beispiel:
Zurücksetzen in die Zwischenablage
// User currently has: Premium Annual (Level 1)// User downgrades to: Standard Monthly (Level 2)// Result: Premium access continues until annual renewal date, then switches3. Abstufung
Abschnitt mit dem Titel “3. Abstufung”Wechsel zu einer anderen Abonnement auf demselben Ebeneniveau.
Das Verhalten hängt von der Dauer ab:
Andere Dauer → Verhält sich wie herunterstufen
- Wirkt sich auf die nächste Verlängerungsdatum aus
- Beispiel: Monatliches Premium (Ebene 1) → Jährliches Premium (Ebene 1)
Selbe Dauer → Verhält sich wie upgrade
- Wird sofort wirksam
- Beispiel: Premium Monatlich (Level 1) → Ultimate Monatlich (Level 1)
Ein Abonnement-Gruppe erstellen
Abschnitt mit dem Titel „Ein Abonnement-Gruppe erstellen”-
Zu Subscriptions navigieren
In App Store Connect wählen Sie Ihr App und gehen Sie zu Monetize > Subscriptions.
-
Ein Gruppe erstellen
Klicken Sie + nächstens zu „Abonnement-Gruppen“ um eine neue Gruppe zu erstellen.
-
Benennen Sie die Gruppe
Wählen Sie einen beschreibenden Namen, der die darin enthaltenen Abonnements widerspiegelt:
- “Premium-Zugriff”
- “Cloud-Speicherkonzepte”
- “Pro-Funktionen”
-
Abonnements hinzufügen
Nachdem Sie die Gruppe erstellt haben, fügen Sie individuelle Abonnements hinzu. Jedes Abonnement wird eine Rangfolge haben.
-
Rangfolgen für Abonnements festlegen
Ordnen Sie die Abonnements von der höchsten Wertigkeit (1) bis zur niedrigsten Wertigkeit an. Überlegen Sie:
- Jährliche Pläne rangieren höher als monatliche
- Höherpreisige Tarife stehen über niedrigerpreisigen
- Ultimative/ Premium-Tarife rangieren am höchsten
Verwenden Sie es in Ihrer App
Abschnitt mit dem Titel “In Ihrer App verwenden”Der native-purchases-Plugin verwaltet die Abonnementgruppenlogik automatisch:
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Fetch all subscriptions in a groupconst { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly', 'premium_annual', 'ultimate_monthly'], productType: PURCHASE_TYPE.SUBS,});
// Display current subscription using StoreKit transactionsconst { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS,});
const activeSubs = purchases.filter((purchase) => purchase.isActive);
// Detect pending downgrade/cancellation (StoreKit sets willCancel === true)const pendingChange = purchases.find((purchase) => purchase.willCancel === true);if (pendingChange) { console.log('Subscription will stop auto-renewing on', pendingChange.expirationDate);}
// Purchase (StoreKit handles upgrades/downgrades automatically)await NativePurchases.purchaseProduct({ productIdentifier: 'premium_annual', productType: PURCHASE_TYPE.SUBS,});
// Listen for StoreKit updates (fires on upgrades/downgrades/refunds)NativePurchases.addListener('transactionUpdated', (transaction) => { console.log('Subscription updated:', transaction);});Verwaltung von Abonnementänderungen
Abschnitt mit dem Titel “Verwaltung von Abonnementänderungen”Änderungstyp erkennen
Abschnitt mit dem Titel “Änderungstyp erkennen”import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Get current subscription infoconst { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS,});
const currentSubscription = purchases.find( (purchase) => purchase.subscriptionState === 'subscribed',);
if (currentSubscription) { // StoreKit reports if user cancelled auto-renew if (currentSubscription.willCancel) { console.log( `User cancelled. Access remains until ${currentSubscription.expirationDate}`, ); }
if (currentSubscription.isUpgraded) { console.log('User recently upgraded to this plan.'); }}
// Listen for automatic upgrades/downgradesNativePurchases.addListener('transactionUpdated', (transaction) => { console.log('Subscription changed!', transaction); if (transaction.subscriptionState === 'revoked') { revokeAccess(); } else if (transaction.isActive) { unlockPremiumFeatures(); }});Benutzerkommunikation
Abschnitt mit dem Titel “Benutzerkommunikation”Kommunizieren Sie das Änderungsverhalten immer klar:
Für Upgrades:
“Sie erhalten sofortigen Zugriff auf Premium-Funktionen. Wir berechnen Ihre aktuelle Abonnementgebühr.”
Für Downgrades:
“Sie behalten Premium-Zugriff bis [Renovierungsdatum], dann wechseln Sie auf Standard.”
Für Crossgrades:
“Ihr Plan wird sich bei der nächsten Renovierung am [Datum] auf jährliche Abrechnung ändern.”
Serverüberwachung
Abschnitt mit dem Titel “Serverüberwachung”Verwenden Sie Apples App Store Server Notifications v2 oder Ihren eigenen Receipt-Validierungsserver, um Änderungen an StoreKit in Ihrer Datenbank zu spiegeln. Paaren Sie Serverbenachrichtigungen mit dem "Hörer" so, dass sowohl Client als auch Backend synchron bleiben. transactionUpdated Gute Praxis
Abschnitt mit dem Titel “Gute Praxis”
Gruppenorganisation“You’ll get immediate access to Premium features. We’ll prorate your current subscription.”
Abschnitt mit dem Titel „Gruppenorganisation“- Verwahre verwandte Abonnements in derselben Gruppe
- Mische nicht unabhängige Funktionen (z.B. Speicherung und Werbung entfernen)
- Erstelle separate Gruppen für unterschiedliche Funktionen
Niveau-Rangfolge-Strategie
Abschnitt mit dem Titel „Niveau-Rangfolge-Strategie“- Jahrespläne → Höheres Niveau als monatliche (für gleiche Ebene)
- Höherpreisige Ebenen → Höheres Niveau
- Berücksichtige Wert, nicht nur Preis
Benutzererfahrung
Abschnitt mit dem Titel „Benutzererfahrung“- Zeige aktuelles Abonnement offensichtlich
- Alle verfügbaren Optionen in der Gruppe anzeigen
- Anzeigen, welche Änderungen sofort vs. bei der Erneuerung wirksam sind
- Zum Wechseln zwischen Tarifen ermöglichen
- Alle Upgrade-Szenarien testen
- Alle Downgrade-Szenarien testen
- Überprüfen Sie das Verhalten bei der Kreuzgradierung
- Überprüfen Sie, ob Webhooks ausgelöst werden
Gemeinsame Szenarien
Abschnitt mit dem Titel „Gemeinsame Szenarien“Szenario 1: Dreistufige monatliche Tarife
Abschnitt mit dem Titel „Szenario 1: Dreistufige monatliche Tarife“Level 1: Ultimate Monthly ($19.99)Level 2: Premium Monthly ($9.99)Level 3: Basic Monthly ($4.99)- Basic → Premium: Upgrade (unverzüglich)
- Premium → Ultimate: Upgrade (unverzüglich)
- Ultimate → Premium: Downgrade (bei Erneuerung)
- Basic → Ultimate: Upgrade (unverzüglich)
Szenario 2: Gemischte Laufzeitpläne
Abschnitt mit dem Titel „Szenario 2: Gemischte Laufzeitpläne“Level 1: Premium Annual ($99.99/year)Level 2: Premium Monthly ($9.99/month)- Monatlich → Jahres: Crossgrade (bei Erneuerung)
- Jährlich → Monatlich: Downgrade (bei Erneuerung)
Szenario 3: Mehrstufige Pläne mit verschiedenen Laufzeiten
Szenario 3: Multi-Tier Multi-DurationLevel 1: Ultimate Annual ($199/year)Level 2: Ultimate Monthly ($19.99/month)Level 3: Premium Annual ($99/year)Level 4: Premium Monthly ($9.99/month)Level 5: Basic Annual ($49/year)Level 6: Basic Monthly ($4.99/month)Diese Konfiguration bietet maximale Flexibilität, während die klare Upgrade-/Downgrade-Logik aufrechterhalten wird.
Problembehandlung
Sektion: ProblembehandlungAbonnement erscheint nicht in Gruppe:
- Überprüfen Sie, ob es der richtigen Gruppe zugewiesen ist
- Überprüfen Sie, ob es sich in mindestens dem Status „Zur Übermittlung bereit“ befindet
- Stellen Sie sicher, dass die Produkt-ID korrekt ist
Falsches Upgrade-/Downgrade-Verhalten:
- Überprüfen Sie die Ranglisten (1 = höchste)
- Überprüfen Sie, ob die Abonnementstufen Sinn ergeben
- Überprüfen Sie, ob die Einstellungen korrekt sind
Produkte aus verschiedenen Gruppen:
- Benutzer können gleichzeitig mehrere Gruppen abonnieren
- Dies ist absichtlich - Halten Sie verwandte Produkte in derselben Gruppe
getActiveProducts zeigt mehrere Abonnements an:
- Überprüfen Sie, ob die Abonnements in verschiedenen Gruppen sind
- Stellen Sie sicher, dass der Benutzer nicht über Family Sharing abonniert ist
- Überprüfen Sie den Abonnementstatus in App Store Connect
Zusätzliche Ressourcen
Abschnitt mit dem Titel „Zusätzliche Ressourcen“Zur weiteren Information wenden Sie sich an die offizielle Apple-Dokumentation zu Abonnementgruppen.
Weitermachen von Erstellen von iOS-Abonnementgruppe
Abschnitt mit dem Titel „Weitermachen von Erstellen von iOS-Abonnementgruppe”Wenn Sie " Erstellen von iOS-Abonnementgruppe zum Planen der Store-Zulassung und -Distribution verwenden, verbinden Sie es mit Mit @capgo/native-purchases für die native Fähigkeit in Mit @capgo/native-purchases, @capgo/capacitor-in-app-review für die Implementierungsdetails in @capgo/capacitor-in-app-review, Mit @capgo/capacitor-in-app-review für die native Fähigkeit in Mit @capgo/capacitor-in-app-review, @capgo/capacitor-native-market für die Implementierungsdetails in @capgo/capacitor-native-market, und Mit @capgo/capacitor-native-market für die native Fähigkeit in Mit @capgo/capacitor-native-market.