Gérer les erreurs dans le SDK Unity

Chaque erreur retournée par le SDK est de type AdaptyErrorCode. Voici un exemple :

Activez les logs verbeux avant de déboguer. La plupart des AdaptyErrors encapsulent une erreur sous-jacente de StoreKit, Play Billing, réseau ou backend. Avec les logs verbeux activés (Adapty.SetLogLevel(AdaptyLogLevel.Verbose, ...) — voir Journalisation), cette erreur encapsulée est affichée dans la console, ce qui vous indique généralement la cause réelle.

Si ces solutions ne résolvent pas votre problème, consultez la section Autres problèmes pour connaître les étapes à suivre avant de contacter le support, afin de nous aider à vous assister plus efficacement.

Adapty.MakePurchase(product, (profile, error) => {
  if (error != null && error.Code == Adapty.ErrorCode.PaymentCancelled) {
      // payment cancelled
  }
});

Codes système StoreKit

ErreurCodeSolution
unknown0Code d’erreur indiquant qu’une erreur inconnue ou inattendue s’est produite.
Réessayez ou consultez la section Autres problèmes.
clientInvalid1Ce code d’erreur indique que le client n’est pas autorisé à effectuer l’action tentée.
paymentCancelled2

Ce code d’erreur indique que l’utilisateur a annulé une demande de paiement.

Aucune action n’est requise, mais d’un point de vue logique métier, vous pouvez proposer une remise à votre utilisateur ou lui rappeler ultérieurement.

paymentInvalid3Cette erreur indique que l’un des paramètres de paiement n’a pas été reconnu par l’App Store.
paymentNotAllowed4Ce code d’erreur indique que l’utilisateur n’est pas autorisé à valider des paiements.
storeProductNotAvailable5Ce code d’erreur indique que le produit demandé n’est pas disponible dans le store.
Essayez de réinstaller l’application.
cloudServicePermissionDenied6Ce code d’erreur indique que l’utilisateur n’a pas autorisé l’accès aux informations du service cloud.
cloudServiceNetworkConnectionFailed7Ce code d’erreur indique que l’appareil n’a pas pu se connecter au réseau.
cloudServiceRevoked8Ce code d’erreur indique que l’utilisateur a révoqué l’autorisation d’utiliser ce service cloud.
privacyAcknowledgementRequired9Ce code d’erreur indique que l’utilisateur n’a pas encore accepté la politique de confidentialité d’Apple.
unauthorizedRequestData10Ce code d’erreur indique que l’application tente d’utiliser une propriété pour laquelle elle ne dispose pas des droits requis.
invalidOfferIdentifier11

L’identifiant de l’offre n’est pas valide. Par exemple, vous n’avez pas configuré d’offre avec cet identifiant dans l’App Store, ou vous avez révoqué l’offre.

Assurez-vous de configurer les offres souhaitées dans AppStore Connect et de passer un identifiant d’offre valide.

invalidSignature12Ce code d’erreur indique que la signature dans une remise de paiement n’est pas valide.
missingOfferParams13Ce code d’erreur indique que des paramètres sont manquants dans une remise de paiement.
invalidOfferPrice14Ce code d’erreur indique que le prix que vous avez spécifié dans App Store Connect n’est plus valide. Les offres doivent toujours représenter un prix réduit.

Codes Android personnalisés

ErreurCodeSolution
adaptyNotInitialized20Vous devez configurer correctement le SDK Adapty via la méthode Adapty.activate. Découvrez comment le faire pour Unity.
productNotFound22Cette erreur indique que le produit demandé pour l’achat n’est pas disponible dans le store.
invalidJson23Le JSON du paywall n’est pas valide. Corrigez-le dans l’Adapty Dashboard. Consultez la rubrique Personnaliser le paywall avec Remote Config pour savoir comment le corriger.
currentSubscriptionToUpdateNotFoundInHistory24L’abonnement d’origine qui doit être renouvelé est introuvable.
pendingPurchase25Cette erreur indique que l’état de l’achat est en attente plutôt que finalisé. Consultez la page Gestion des transactions en attente dans la documentation Android Developer pour plus de détails.
billingServiceTimeout97Cette erreur indique que la requête a atteint le délai d’attente maximum avant que Google Play puisse répondre. Cela peut être causé, par exemple, par un délai dans l’exécution de l’action demandée par l’appel à la bibliothèque Play Billing.
featureNotSupported98La fonctionnalité demandée n’est pas prise en charge par le Play Store sur l’appareil actuel.
billingServiceDisconnected99Cette erreur fatale indique que la connexion de l’application cliente au service Google Play Store via le BillingClient a été interrompue.
billingServiceUnavailable102Cette erreur transitoire indique que le service Google Play Billing est actuellement indisponible. Dans la plupart des cas, cela signifie qu’il y a un problème de connexion réseau quelque part entre l’appareil client et les services Google Play Billing.
billingUnavailable103

Cette erreur indique qu’une erreur de facturation utilisateur s’est produite pendant le processus d’achat. Exemples de situations où cela peut se produire :

1. L’application Play Store sur l’appareil de l’utilisateur est obsolète.

2. L’utilisateur se trouve dans un pays non pris en charge.

3. L’utilisateur est un utilisateur entreprise et son administrateur a désactivé les achats pour les utilisateurs.

4. Google Play ne peut pas débiter le moyen de paiement de l’utilisateur. Par exemple, la carte de crédit de l’utilisateur a peut-être expiré.

5. L’utilisateur n’est pas connecté à l’application Play Store.

developerError105Il s’agit d’une erreur fatale indiquant que vous utilisez une API de manière incorrecte.
billingError106Il s’agit d’une erreur fatale indiquant un problème interne avec Google Play lui-même.
itemAlreadyOwned107Le produit consommable a déjà été acheté.
itemNotOwned108Cette erreur indique que l’action demandée sur l’article a échoué car

Codes StoreKit personnalisés

ErreurCodeSolution
noProductIDsFound1000

Cette erreur indique qu’aucun des produits que vous avez demandés sur le paywall n’est disponible à l’achat dans l’App Store, même s’ils y sont répertoriés. Cette erreur peut parfois s’accompagner d’un avertissement InvalidProductIdentifiers. Si l’avertissement apparaît sans erreur, ignorez-le.

Si vous rencontrez cette erreur, suivez les étapes de la section Correction de l’erreur Code-1000 noProductIDsFound.

productRequestFailed1002

Impossible de récupérer les produits disponibles pour le moment. Raison possible :

- Aucun cache n’a encore été créé et il n’y a pas de connexion Internet en même temps.

cantMakePayments1003Les achats intégrés ne sont pas autorisés sur cet appareil. Consultez le guide de dépannage.
noPurchasesToRestore1004Cette erreur indique que Google Play n’a pas trouvé d’achat à restaurer.
cantReadReceipt1005

Aucun reçu valide n’est disponible sur l’appareil. Cela peut poser problème lors des tests en sandbox.

Aucune action n’est requise, mais d’un point de vue logique métier, vous pouvez proposer une remise à votre utilisateur ou lui rappeler ultérieurement.

productPurchaseFailed1006L’achat du produit a échoué. Cela encapsule une erreur StoreKit sous-jacente — lisez l’erreur encapsulée (ou activez les logs verbeux pour la voir dans la console) pour connaître la raison réelle. L’erreur encapsulée correspond généralement à l’un des codes StoreKit 0–14 du tableau ci-dessus — le plus souvent paymentCancelled, paymentInvalid, paymentNotAllowed ou invalidOfferPrice. Si vous ne pouvez pas identifier une raison précise, essayez un nouveau profil sandbox ; si cela échoue encore, contactez le support Apple.
refreshReceiptFailed1010Cette erreur indique que le reçu n’a pas été reçu. Applicable uniquement à StoreKit 1.
receiveRestoredTransactionsFailed1011La restauration des achats a échoué.

Codes réseau personnalisés

ErreurCodeSolution
notActivated2002Le SDK Adapty n’est pas activé.
Cas le plus fréquent : un écran de démarrage ou un hook de script précoce appelle des méthodes Adapty avant que Adapty.Activate soit terminé. Le symptôme est intermittent et peut ne pas se reproduire dans l’éditeur car les timings sur appareil réel sont différents. Attendez le callback de complétion d’Activate avant de planifier tout autre appel SDK. Voir Ordre des appels dans le SDK Unity pour la séquence complète.
badRequest2003Requête incorrecte.
Assurez-vous d’avoir effectué toutes les étapes requises pour l’intégration avec l’App Store.
serverError2004Erreur serveur.
Réessayez après quelques instants. Si le problème persiste, contactez l’équipe support Adapty.
networkFailed2005Cette erreur indique des problèmes de connexion réseau sur l’appareil de l’utilisateur.
Essayez de désactiver le VPN ou de passer du réseau cellulaire au WiFi, ou inversement.
decodingFailed2006Cette erreur indique que le décodage de la réponse a échoué.
Vérifiez votre code et assurez-vous que les paramètres que vous envoyez sont valides. Par exemple, cette erreur peut indiquer que vous utilisez une clé API invalide.
encodingFailed2009Cette erreur indique que l’encodage de la requête a échoué.
missingURL2010L’URL demandée est nil.
analyticsDisabled3000Nous ne pouvons pas traiter les événements d’analytics, car vous avez désactivé cette option.
wrongParam3001Cette erreur indique que certains de vos paramètres sont incorrects.
Si vous utilisez le Paywall Builder Adapty et ne pouvez pas afficher un paywall à cause de cette erreur, activez Show on device dans le Paywall Builder.
Une autre raison possible est que la version du fichier fallback local ne correspond pas à la version du SDK. Téléchargez un nouveau fichier depuis le tableau de bord.
activateOnceError3005Il n’est pas possible d’appeler la méthode .activate plus d’une fois.
profileWasChanged3006Le profil utilisateur a été modifié pendant l’opération.
Cela se produit lorsqu’une méthode est appelée pendant qu’Adapty.Identify est encore en cours — l’appel en vol arrive sur un profil qui est sur le point d’être remplacé, et le SDK le rejette. Attendez le callback de complétion d’Identify avant tout appel d’action utilisateur. Voir Ordre des appels dans le SDK Unity.
unsupportedData3007Cette erreur indique que le format de données n’est pas pris en charge par le SDK.
persistingDataError3100Une erreur s’est produite lors de l’enregistrement des données.
fetchTimeoutError3101Cette erreur indique que l’opération de récupération a dépassé le délai d’attente.

Autres problèmes

Si vous n’avez pas encore trouvé de solution, voici les prochaines étapes :

  • Mettre à jour le SDK vers la dernière version : nous recommandons toujours de mettre à jour vers les dernières versions du SDK, car elles sont plus stables et incluent des correctifs pour les problèmes connus.
  • Contacter l’équipe support ou obtenir de l’aide auprès d’autres développeurs sur le forum de support.
  • Contacter l’équipe support via support@adapty.io ou via le chat : si vous n’êtes pas prêt à mettre à jour le SDK ou si cela n’a pas résolu le problème, contactez notre équipe support. Notez que votre problème sera résolu plus rapidement si vous activez la journalisation verbeux et partagez les logs avec l’équipe. Vous pouvez également joindre des extraits de code pertinents.