Passer à la section de contenu

Configurer la mise en sandbox de test iOS

GitHub

La mise en œuvre des achats en application sur iOS nécessite une configuration appropriée dans App Store Connect et sur vos appareils de test. Ce guide couvre tout ce dont vous avez besoin pour vous lancer dans la mise en œuvre de tests de sandbox.

  • Programme Apple Developer: Membre actif avec renouvellement annuel
  • Accords: Accord « Paiement d'applications payantes » signé avec informations bancaires et fiscales complétées
  • Projet Xcode: Configuré avec un identifiant de bundle approprié et des capacités
  1. Signer l'Accord sur les Applications Payantes

    Dans App Store Connect, naviguez vers Accords, Fiscalité et Comptabilité et complétez :

    • Signer l'Accord sur les Applications Payantes
    • Ajoutez vos informations bancaires
    • Remplir les formulaires fiscaux

    Attendez que Apple approuve vos informations (cela peut prendre entre 24 et 48 heures).

  2. Créer un Utilisateur de Test de Sandbox

    Dans App Store Connect, allez à Utilisateurs et Accès > Testeurs de Sandbox.

    Cliquez sur le bouton + pour créer un nouveau testeur de sandbox.

    Important :Utilisez une adresse e-mail qui n'est PAS déjà associée à un ID Apple. Vous pouvez utiliser des alias d'e-mail :

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

    Créer un testeur de sandbox

  3. Configureur de Dispositif de Test (iOS 12+)

    À partir d'iOS 12, vous n'avez plus besoin de vous déconnecter de votre compte iTunes pour tester les achats.

    Sur votre appareil iOS :

    1. Ouvrir Réglages
    2. Appuyer App Store
    3. Faites défiler vers le bas
    4. Appuyer Compte de Test de Sandbox
    5. Se connecter avec votre compte de test de sandbox
  4. Configurer le projet Xcode

    Assurez-vous que votre projet Xcode possède :

    Identifiant de l'application

    • Doit correspondre à l'identifiant dans votre Centre de développement
    • Doit correspondre à l'identifiant dans App Store Connect

    Capacité d'achat en application

    1. Sélectionnez votre projet dans Xcode
    2. Allez à Signature et capacités
    3. Cliquez + Capacité
    4. Ajouter Achats en Ligne
  5. Créer des Produits d'Achats en Ligne

    Dans l'App Store Connect, naviguez vers votre application et créez vos produits d'achats en ligne (abonnements, consommables, etc.).

    Les produits doivent être au moins dans l'état « Prêt à Soumettre » pour les tests de sandbox.

  6. Tester votre Implémentation

    Construire et exécuter votre application sur un appareil de test. Lorsque vous tenterez d'une achat, vous devriez voir :

    [Environnement : Sandbox]

    Cette confirmation indique que vous êtes dans l'environnement de sandbox et que vous ne serez pas facturé d'argent réel.

  • Pas de frais réelsTous les achats sont gratuits en mode sandbox
  • Abonnements accélérésLes durées d'abonnement sont raccourcies pour un test plus rapide
    • 1 semaine d'abonnement = 3 minutes
    • 1 mois d'abonnement = 5 minutes
    • 2 mois d'abonnement = 10 minutes
    • 3 mois d'abonnement = 15 minutes
    • 6 mois d'abonnement = 30 minutes
    • 1 an d'abonnement = 1 heure
  • Limit de renouvellement automatique: Les abonnements se renouvellent automatiquement jusqu'à 6 fois dans l'environnement de test
  • Annulation immédiate: Les abonnements annulés expirent immédiatement
  • Créer plusieurs comptes de test pour différents scénarios
  • Utilisez les comptes de test uniquement sur des appareils de test
  • Évitez d'utiliser un ID Apple personnel pour le test de l'environnement de test
  • Les comptes de test peuvent acheter n'importe quel produit, quel que soit le pays
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);

Lorsqu'elle est correctement configurée, vous devriez observer :

  1. Barre d'informations du sandbox pendant l'achat : « [Environnement : Sandbox] »
  2. Les produits chargent avec succès
  3. Les achats se terminent sans frais réels
  4. Les reçus s'authentifient correctement
  5. Les abonnements se renouvellent automatiquement (à un rythme accéléré)

Les produits ne chargent pas :

  • Vérifiez que l'identifiant de l'application correspond à App Store Connect
  • Vérifiez que les accords sont signés et approuvés
  • Assurez-vous que les produits sont au moins dans l'état « Prêt à soumettre »
  • Attendez 2-3 heures après avoir créé des produits

« Impossible de se connecter à l'App Store » :

  • Vérifiez que votre compte sandbox est configuré correctement
  • Vérifiez que le dispositif est connecté à Internet
  • Essayez de vous déconnecter et de vous reconnecter à votre compte sandbox
  • Redémarrez l'application

Achats qui se passent en silence :

  • Vérifiez la console Xcode pour les messages d'erreur
  • Vérifiez que la capacité d'achat en application est activée
  • Assurez-vous que l'adresse e-mail de votre compte sandbox n'est pas un ID Apple réel
  • Essayez de créer un nouveau compte de test sandbox

Erreurs de validation de récépissé :

  • Utilisez l'endpoint de validation de récépissé sandbox pour les tests
  • Endpoint de production : https://buy.itunes.apple.com/verifyReceipt
  • Endpoint de sandbox : https://sandbox.itunes.apple.com/verifyReceipt
  • Le plugin native-purchases gère cela automatiquement

Durée de souscription incorrecte :

  • N'oubliez pas que les souscriptions sont accélérées dans l'environnement de test
  • Utilisez le tableau de conversion ci-dessus pour les durées attendues
  • Les souscriptions se renouvellent automatiquement jusqu'à 6 fois dans l'environnement de test

“Cette adresse Apple n'a pas encore été utilisée dans l'App Store” :

  • C'est normal pour de nouveaux comptes de test
  • Procédez à l'achat pour activer le compte
  • Se produit uniquement lors de la première utilisation
  1. Créez plusieurs comptes de test pour différents scénarios de test
  2. Testez toutes les durées d'abonnement pour vérifier le comportement
  3. Testez les flux de suppression et de renouvellement Testez la validation de réception
  4. pour s'assurer que cela fonctionne correctement Testez la fonctionnalité de restauration des achats
  5. Testez la mise à niveau/dégradation de l'abonnement Testez le comportement
  6. Testez avec des conditions de réseau dégradées Production vs. Sandbox
  7. Testez les flux de suppression et de renouvellement des abonnements

Testez la validation de réception des achats

Section intitulée « Production vs. Sandbox »
FonctionnalitéSandboxProduction
Charges réellesNonOui
Durée de l'abonnementAccéléréNormal
Limite de renouvellement automatique6 foisSans limite
Effet d'annulationImmédiatFin de période
Point de terminaison de la factureURL de sandboxURL de production
Seulement pour les comptes de testOuiNon

Pour plus de détails, consultez la documentation officielle de Apple StoreKit sur le test de sandbox.

Continuez de la section intitulée « Continuez de la configuration du test de sandbox iOS »

Si vous utilisez

Configure iOS Sandbox Testing pour planifier l'approbation et la distribution de l'application, connectez-le à Using @__CAPGO_KEEP_0__/native-purchases pour la capacité native dans Using @capgo/native-purchases, @capgo/__CAPGO_KEEP_1__-in-app-review pour le détail d'implémentation dans @capgo/capacitor-in-app-review, for the implementation detail in @capgo/capacitor-in-app-review, En utilisant @capgo/capacitor-en-ligne-examen pour la capacité native dans En utilisant @capgo/capacitor-en-ligne-examen, @capgo/capacitor-marché-natif pour le détail d'implémentation dans @capgo/capacitor-marché-natif, et En utilisant @capgo/capacitor-marché-natif pour la capacité native dans En utilisant @capgo/capacitor-marché-natif.