Zum Inhalt springen

iOS-Sandbox-Tests konfigurieren

GitHub

Das Testen von In-App-Käufen unter iOS erfordert eine korrekte Konfiguration in App Store Connect und auf deinen Testgeräten. Dieser Guide zeigt dir alles, was du für das Sandbox-Testing benötigst.

  • Apple Developer Program: Aktive Mitgliedschaft mit jährlicher Verlängerung
  • Vereinbarungen: „Paid Applications Agreement“ unterzeichnet und Bank- sowie Steuerdaten vollständig ausgefüllt
  • Xcode-Projekt: Mit korrektem Bundle Identifier und Capabilities konfiguriert
  1. Paid Applications Agreement unterzeichnen

    Navigiere in App Store Connect zu Verträge, Steuern und Bankdaten und schließe Folgendes ab:

    • Unterschreibe den Paid Applications Agreement
    • Hinterlege deine Bankverbindung
    • Fülle die Steuerformulare aus

    Warte auf die Bestätigung durch Apple (das kann 24–48 Stunden dauern).

  2. Sandbox-Testnutzer erstellen

    Gehe in App Store Connect zu Benutzer und Zugriff > Sandbox-Tester.

    Klicke auf das + um einen neuen Sandbox-Tester zu erstellen.

    Wichtig: Verwende eine E-Mail-Adresse, die NOCH NICHT mit einer Apple ID verknüpft ist. Du kannst E-Mail-Aliase nutzen:

    • Gmail: youremail+test@gmail.com
    • iCloud: youremail+test@icloud.com

    Sandbox-Tester erstellen

  3. Testgerät konfigurieren (iOS 12+)

    Seit iOS 12 musst du dich nicht mehr aus deinem iTunes-Account ausloggen, um Käufe zu testen.

    Auf deinem iOS-Gerät:

    1. Öffne Einstellungen
    2. Tippen App Store
    3. Nach unten scrollen
    4. Tippen Sandbox-Account
    5. Mit deinem Sandbox-Testaccount anmelden
  4. Xcode-Projekt konfigurieren

    Stelle sicher, dass dein Xcode-Projekt Folgendes enthält:

    Bundle-Identifier

    • Muss mit der ID im Developer Center übereinstimmen
    • Muss mit der ID in App Store Connect übereinstimmen

    In-App-Purchase-Berechtigung

    1. Wähle dein Projekt in Xcode aus
    2. Gehe zu Signing & Capabilities
    3. Klicken + Capability
    4. Füge In-App-Käufe
  5. In-App-Kauf-Produkte erstellen

    Navigiere in App Store Connect zu deiner App und erstelle dort deine In-App-Kauf-Produkte (Abos, Verbrauchsgüter etc.).

    Für Sandbox-Tests müssen die Produkte mindestens den Status „Ready to Submit“ haben.

  6. Implementierung testen

    Baue und starte deine App auf einem Testgerät. Wenn du einen Kauf versuchst, solltest du Folgendes sehen:

    [Umgebung: Sandbox]

    Diese Bestätigung zeigt, dass du dich in der Sandbox-Umgebung befindest und dir kein echtes Geld berechnet wird.

  • Keine echten Abbuchungen: Alle Käufe sind im Sandbox-Modus kostenlos
  • Beschleunigte Abonnements: Abo-Laufzeiten sind für schnelleres Testen verkürzt
    • 1-Wochen-Abo = 3 Minuten
    • 1-Monats-Abo = 5 Minuten
    • 2 Monate Abo = 10 Minuten
    • 3 Monate Abo = 15 Minuten
    • 6 Monate Abo = 30 Minuten
    • 1 Jahr Abo = 1 Stunde
  • Limit für automatische Verlängerung: Abos verlängern sich im Sandbox bis zu 6-mal automatisch
  • Sofortige Kündigung: Gekündigte Abos laufen sofort ab
  • Mehrere Test-Accounts für verschiedene Szenarien erstellen
  • Test-Accounts nur auf Testgeräten verwenden
  • Verwende keine persönliche Apple ID für Sandbox-Tests
  • Test-Accounts können Produkte unabhängig von der Region kaufen
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
const { isBillingSupported } = await NativePurchases.isBillingSupported();
if (!isBillingSupported) {
throw new Error('StoreKit not supported on this device');
}
// Fetch products (automatically uses sandbox when available)
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['premium_monthly'],
productType: PURCHASE_TYPE.SUBS,
});
// Make test purchase
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'premium_monthly',
productType: PURCHASE_TYPE.SUBS,
});
console.log('Test purchase successful!', transaction.transactionId);

Bei korrekter Konfiguration solltest du Folgendes sehen:

  1. Sandbox-Banner während des Kaufs: „[Environment: Sandbox]“
  2. Produkte werden geladen erfolgreich
  3. Käufe abgeschlossen ohne tatsächliche Belastung
  4. Belege werden korrekt validiert
  5. Abos verlängern sich automatisch (beschleunigt)

Produkte laden nicht:

  • Bundle ID mit App Store Connect abgleichen
  • Prüfen, ob Verträge unterzeichnet und genehmigt sind
  • Status muss mindestens „Ready to Submit“ sein
  • Warten Sie 2–3 Stunden nach dem Erstellen der Produkte

„Cannot connect to iTunes Store“:

  • Prüfen Sie, ob das Sandbox-Konto korrekt konfiguriert ist
  • Prüfen Sie die Internetverbindung des Geräts
  • Melden Sie sich vom Sandbox-Konto ab und wieder an
  • Starten Sie die App neu

Käufe schlagen lautlos fehl:

  • Prüfen Sie die Xcode-Konsole auf Fehlermeldungen
  • Prüfen, ob die In-App-Purchase-Funktion aktiviert ist
  • Stellen Sie sicher, dass die Sandbox-E-Mail keine echte Apple ID ist
  • Erstellen Sie ein neues Sandbox-Testkonto

Fehler bei der Receipt-Validierung:

  • Sandbox-Receipt-Validation-Endpoint beim Testen nutzen
  • Production-Endpoint: https://buy.itunes.apple.com/verifyReceipt
  • Sandbox-Endpoint: https://sandbox.itunes.apple.com/verifyReceipt
  • Das native-purchases Plugin übernimmt das automatisch

Falsche Abo-Laufzeit:

  • Beachte, dass Abos in der Sandbox beschleunigt ablaufen
  • Nutze die obige Tabelle für die erwarteten Laufzeiten
  • Abos verlängern sich in der Sandbox max. 6-mal automatisch

„Diese Apple ID wurde noch nicht im iTunes Store verwendet“:

  • Das ist bei neuen Sandbox-Accounts normal
  • Führe den Kauf aus, um den Account zu aktivieren
  • Tritt nur beim ersten Mal auf
  1. Mehrere Test-Accounts erstellen für verschiedene Testszenarien
  2. Alle Abo-Laufzeiten testen, um das Verhalten zu prüfen
  3. Kündigungs- und Verlängerungsflows testen
  4. Prüfen, ob die Belegvalidierung korrekt funktioniert
  5. Funktionalität zum Wiederherstellen von Käufen Funktionalität
  6. Abonnement-Upgrades/Downgrades prüfen Verhalten
  7. Test bei schlechten Netzwerkbedingungen
FunktionSandboxProduktion
Echte AbbuchungenNeinJa
AbonnementdauerBeschleunigtNormal
Limit für automatische Verlängerung6-malUnbegrenzt
Auswirkung der KündigungSofortEnde des Zeitraums
Receipt-EndpointSandbox-URLProduction-URL
Nur Test-AccountsJaNein

Weitere Details findest du in der offizielle Apple-StoreKit-Dokumentation zum Sandbox-Testing.

Wenn du es nutzt iOS-Sandbox-Tests konfigurieren um Store-Zulassung und Distribution zu planen, verknüpfen Sie es mit @capgo/native-purchases verwenden für die native Funktionalität bei der Nutzung von @capgo/native-purchases, @capgo/capacitor-in-app-review für die Implementierungsdetails in @capgo/capacitor-in-app-review, @capgo/capacitor-in-app-review nutzen für die native Funktion bei der Nutzung von @capgo/capacitor-in-app-review, @capgo/capacitor-native-market für das Implementierungsdetail in @capgo/capacitor-native-market, und @capgo/capacitor-native-market nutzen für die native Funktionalität bei der Nutzung von @capgo/capacitor-native-market.