39 votes

iPhone StoreKit - identifiants de produits invalides

J'essaie de tester In App Purchase dans l'environnement sandbox.

Afin de tester le code, j'ai fait ce qui suit :

  1. Création d'un compte d'utilisateur test pour l'achat d'applications dans "Gérer les utilisateurs" dans iTunes Connect.

  2. J'ai créé des produits d'achat dans l'application sous "Gérer vos achats dans l'application". J'ai utilisé des valeurs numériques et alphanumériques pour les ID des produits.

  3. J'ai chargé l'application sur l'iPhone, je suis allé dans Réglages->Store et je me suis déconnecté du magasin normal et du compte de test créé à l'étape 1.

  4. Définir un point d'arrêt dans le fichier ( void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response rappel

Tous les identifiants de produits soumis sont dans le fichier response.invalidProductIdentifiers propriété. Lors de la soumission de la demande, j'ai d'abord essayé les identifiants de produit exacts créés à l'étape 2. J'ai également essayé de les faire précéder de l'identifiant de l'offre groupée :

NSString *id2 = @"com.super.duper.8";
NSSet *productList = [NSSet setWithObjects:id2, @"8", nil];

SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:productList];

Est-ce que je rate quelque chose d'évident ? Toute aide est appréciée.

Achim

0 votes

Dans mon cas, l'ancien compte bancaire n'était plus valable.

53voto

Troy Brant Points 2181

Si vous obtenez toujours des identifiants de produits invalides, j'ai établi une liste de contrôle des différentes causes :

http://troybrant.net/blog/2010/01/invalid-product-ids/

12 votes

Étonnamment, la suppression de l'application de mon appareil et sa réinstallation ont réglé le problème. Merci Troy !

0 votes

Ça a marché pour moi aussi. Cela n'arrivera pas quand iap sera en ligne, n'est-ce pas ? C'est actuellement en sandbox.

0 votes

Je veux ajouter quelque chose ici. Troy a été tout simplement génial pour nous aider tous à résoudre ces problèmes, merci Troy !

15voto

Wayne Lo Points 1128

J'ai passé deux jours à me battre avec tous mes productsRequest (pour AppID) qui se sont retrouvés dans la liste response.invalidProductIdentifiers, au lieu de la liste response.products. Apple a définitivement fait un travail de qualité F dans la gestion de son storekit. Il est confus, imbriqué et complexe.

Je l'ai finalement résolu. J'ai appris une leçon très importante, comme l'ont indiqué quelques personnes dans les forums : Il peut s'écouler plusieurs heures avant que ce que vous avez saisi sur itunesconnect.apple.com ne prenne effet.

Il y a deux parties : le nom de l'application et l'AppID dans votre xcode et ce que vous avez entré dans itunesconnection, ils doivent correspondre exactement (sensible à la casse). Si vous avez enregistré ou modifié votre AppleID dans l'application (j'ai également rempli tous mes contrats et mes informations bancaires, car certains ont suggéré que les actions d'achat ne fonctionneront pas si cette partie n'est pas effectuée), vous pouvez aussi bien aller vous coucher avant de le tester à nouveau car, dans mon cas, cela prend vraiment des heures avant de prendre effet. J'étais tellement frustré de me battre avec ce problème avant que mon enfant de 9 ans ne me traîne pour une histoire à l'heure du coucher, puis j'ai été surpris de constater que le problème avait disparu à mon réveil.

J'ai trouvé les suggestions d'Eddy71 dans http://www.iphonedevsdk.com/forum/iphone-sdk-development/21035-problems-creating-test-user-app-purchase.html vraiment utile. Avant de résoudre le problème, j'ai fait tout ce que je pouvais faire dans la liste de contrôle d'Eddy et je n'ai toujours pas obtenu de produits. L'une de mes craintes était de savoir si le fait de ne pas télécharger le code binaire pour compléter l'enregistrement de l'application dans itunesconnect était correct (pas besoin d'aller en direct comme cela est enseigné dans http://blog.mugunthkumar.com/coding/iphone-tutorial-%E2%80%93-in-app-purchases/ ). C'est en effet correct. Assurez-vous que la case "autorisé à la vente" est cochée et que l'icône est verte (vous devez effectuer une étape supplémentaire pour l'approuver après avoir rempli le formulaire). L'autre crainte était de savoir si je pouvais utiliser la version provisoire pour le développeur (et non la version provisoire pour la distribution) en mode débogage, ce qui est également correct. J'espère que cela pourra aider certains d'entre vous. Bonne chance et ayez confiance. Cela finira par fonctionner.

9voto

Phil Calvin Points 1943

Notre problème était le dernier point de la FAQ d'Apple, " Pourquoi les identifiants de mes produits sont renvoyés dans la base de données de l'UE ? invalidProductIdentifiers le réseau ? " :

  • Vous n'avez pas rempli toutes les exigences financières (voir la section " Contrats, impôts et renseignements bancaires " du présent document).
  • Vous n'avez pas utilisé un App ID explicite.
  • Vous n'avez pas utilisé le profil de provisionnement associé à votre App ID explicite.
  • Vous n'avez pas utilisé le bon identifiant de produit dans votre code. Consultez le Q&A technique, QA1329, "In App Purchase Product Identifiers" pour plus d'informations sur les identifiants de produit.
  • Vous n'avez pas autorisé la vente de vos produits In App Purchase dans iTunes Connect.
  • Vous avez peut-être modifié vos produits, mais ces changements ne sont pas encore disponibles pour tous les serveurs de l'App Store.
  • Si vous ou App Review avez rejeté votre binaire le plus récent dans iTunes Connect.

J'ai fait passer la version la plus récente (qui avait été rejetée) à "Waiting for Upload" en cliquant sur "Ready to Upload Binary" dans iTunes Connect et le problème a été résolu après environ 10 minutes.

5voto

Kulitorum Points 51

Il n'y a pas de problème si le téléphone est jailbreaké, il suffit de désinstaller appSync dans Cydia, puis cela fonctionne.

0 votes

C'est la 6e fois que j'ai ce problème et la 6e fois que ce message m'aide. Je devrais vraiment ajouter cette page à mes favoris :-)

3voto

Achim Points 151

Nous avons fini par créer un nouveau profil d'approvisionnement, il y avait une ligne quelque part (je ne me souviens plus où, pas dans la documentation sur l'achat in app) qui stipulait que vous deviez activer l'achat in app dans le profil d'approvisionnement. Nous ne pouvions pas le faire avec notre profil existant, nous en avons donc créé un nouveau et nous avons pu l'activer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X