Résoudre les problèmes d'intégration App Store

Cet article couvre les problèmes courants d’intégration App Store. Chaque section ci-dessous liste les symptômes, la cause racine et la résolution.

”The provided field values are incorrect” lors de l’enregistrement des identifiants

Lorsque vous enregistrez les identifiants d’achat intégré, Adapty crée un jeton d’authentification à partir de l’In-app purchase Issuer ID, de l’In-app purchase Key ID et du fichier .p8, puis le valide auprès d’Apple. Cette erreur signifie qu’Apple a rejeté le jeton. Vérifiez les valeurs dans cet ordre :

  1. Type de clé. La clé doit être une clé In-App Purchase accessible via Users and AccessIntegrationsIn-App Purchase dans App Store Connect. Une clé provenant de l’onglet Team keys (la clé API App Store Connect) possède son propre Issuer ID et Key ID, mais Apple la rejette ici — cette clé appartient à l’Étape 6 de la configuration.
  2. Même compte et équipe. L’Issuer ID, le Key ID et le fichier .p8 doivent provenir de la même équipe App Store Connect que l’application. Une clé générée dans le compte d’une autre équipe — par exemple, un compte agence — échoue à la validation.
  3. Le fichier .p8 lui-même. Téléchargez le fichier exactement tel qu’il a été téléchargé depuis App Store Connect. Un fichier recréé à partir d’un contenu de clé collé échoue souvent. App Store Connect ne vous permet de télécharger la clé qu’une seule fois ; si le fichier d’origine est perdu, générez une nouvelle clé.
  4. Bundle ID. Le Bundle ID doit correspondre exactement à celui de votre application dans App Store Connect — format DNS inversé sans espaces, par exemple com.company.app.
  5. Caractères cachés. Recopiez chaque identifiant directement depuis App Store Connect. Des espaces superflus ou des caractères similaires — par exemple, un l minuscule à la place du chiffre 1 — font échouer la validation.

Cette validation utilise uniquement les trois champs de la clé d’achat intégré et le Bundle ID. L’App-Specific Shared Secret et la clé API App Store Connect n’y participent pas, donc les ressaisir ne changera pas le résultat.

Les produits n’apparaissent pas

Deux symptômes distincts pointent vers la même cause racine :

  • La clé API App Store Connect est correctement configurée, mais Adapty ne parvient pas à récupérer les produits.
  • Des produits existent dans App Store Connect mais n’apparaissent pas dans Adapty, ou moins de produits que prévu s’affichent. Le SDK signale « Product Id not found » lors d’une tentative d’achat.

La cause la plus fréquente est des accords Apple non signés — l’accord payant, les formulaires fiscaux ou bancaires en attente ou non signés. Lorsque des accords sont en attente, l’API App Store Connect renvoie silencieusement une erreur 403 sur les endpoints liés aux produits. Aucune erreur claire ne remonte dans Adapty ; les produits sont filtrés silencieusement.

Rendez-vous dans App Store Connect → Agreements, Tax, and Banking et signez tous les accords en attente. Ensuite, relancez la synchronisation dans App settings → iOS SDK d’Adapty.

Les notifications du serveur App Store s’affichent comme « Delayed »

Dans App Store Connect, le statut des notifications du serveur App Store peut s’afficher comme Delayed. Cela signifie qu’Apple accuse du retard dans l’envoi des notifications d’événements d’abonnement — les renouvellements, annulations et problèmes de facturation sont mis en file d’attente et arrivent en retard.

Les statistiques d’installation ne sont pas affectées. Adapty comptabilise les installations à partir du premier lancement de l’application, et non à partir des notifications côté serveur.

Si les données de renouvellement ou d’annulation sont en retard, le statut Delayed en est très probablement la cause. Ce statut se résorbe généralement automatiquement au fur et à mesure qu’Apple traite la file d’attente.

Un achat réussi mais le client perd son accès

Un client paie et accède brièvement au contenu, mais perd cet accès dès que votre application actualise son profil depuis Adapty. Apple a encaissé le paiement, mais la transaction n’est jamais parvenue à Adapty — tant que ce n’est pas le cas, le profil ne dispose d’aucun niveau d’accès et la vente est absente de vos rapports.

La cause est généralement l’une des suivantes :

  • Une accréditation a cessé de fonctionner : Adapty n’a pas pu valider la transaction auprès d’Apple. Consultez les accréditations dans Si les mises à jour cessent d’arriver et remplacez celle qui couvre la validation des achats.
  • Le produit n’est pas lié dans Adapty : L’identifiant de produit du store acheté par le client n’est pas lié à un produit Adapty, donc aucun niveau d’accès n’existe à accorder. Vérifiez que le produit existe avec l’App Store Product ID exact et qu’un niveau d’accès lui est assigné.

Le SDK Adapty continue de réessayer la transaction, donc l’accès est rétabli dès qu’Adapty peut l’enregistrer.

Les prix dans Adapty ne correspondent pas à l’App Store

Le champ price sur la page de modification d’un produit dans Adapty se comporte différemment selon la façon dont le produit a été ajouté.

Si vous créez un produit dans Adapty et que vous le poussez vers le store depuis le tableau de bord, ce prix est utilisé comme prix initial dans le store.

Si vous ajoutez un produit qui existe déjà dans le store, ce prix est un espace réservé. Les analyses, les intégrations et le SDK d’Adapty utilisent les vrais prix récupérés depuis l’App Store, quelles que soient les valeurs saisies ici. Les modifications de prix effectuées dans l’App Store ne se synchronisent pas pour mettre à jour cet espace réservé, et il n’est actuellement pas possible de le modifier depuis le tableau de bord.

L’export CSV des prix est vide

Si votre export CSV des prix ne contient que les en-têtes de colonnes, c’est que votre clé API App Store Connect n’est pas entièrement configurée. Consultez Étape 6 — Ajouter la clé API App Store Connect.

Impossible d’envoyer de nouveaux produits vers l’App Store

Adapty peut envoyer de nouveaux produits vers App Store Connect lorsque vous les créez dans le tableau de bord. L’option d’envoi est bloquée si votre intégration App Store n’est pas entièrement configurée. Deux paramètres sont requis :