StoreKit In App Achetez des identificateurs de produit non valides

Duplication possible:
iPhone StoreKit – identifiant de produit non valide

Je reçois un tableau vide d’identificateurs de produit de SKProductsRequest .

J’ai fait les étapes suivantes:

  1. Création d’un compte d’utilisateur de test d’achat en application sous «Gérer les utilisateurs» dans iTunes Connect.

  2. Création de certains produits d’achat dans «Gérer vos achats intégrés».

  3. Chargement de l’application sur l’iPhone, access à Paramètres → Stocker et déconnexion du magasin normal

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

Tous les ID de produit soumis se trouvent dans la propriété invalidProductIdentifiers la réponse. Lors de la soumission de la demande, j’ai essayé à la fois les ID de produit créés à l’étape 2 et les identificateurs préfixés par l’ID de lot.

Merci d’avance,

Raghu

J’ai essayé tout ce qui était suggéré sur les forums Apple et ici, et je n’arrivais toujours pas à le faire fonctionner. Trouvé la solution – votre application doit être transférée par Xcode pour que le sandbox soit activé.

Évident, non? Eh bien, si vous travaillez avec une mise à jour d’une application existante, le périphérique le traitera toujours comme une application installée sur App Store.

Donc, supprimez l’application de votre appareil. Ensuite, installez l’application sur le périphérique en utilisant Build & Run avec votre appareil attaché à votre Mac. Ca devrait marcher maintenant 🙂

J’ai compilé une liste des raisons pour lesquelles les identificateurs de produit ne sont plus valides. Voici une liste de contrôle des causes potentielles:

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

Le contrat pour les applications payantes doit être en vigueur afin de recevoir des données sur les achats intégrés configurés.

Cela a fonctionné pour moi. J’ai eu exactement le même problème.

Je suis l’une des victimes ici. Eh bien, j’étais. Hier, j’ai eu le problème et révisé beaucoup de fois toutes les étapes. Aujourd’hui, j’ai revu toute la liste de troybrant.

1) ok mon erreur, j’ai oublié de créer le profil de dissortingbution approprié: corrigé

2) téléchargé un binary et rejeté immédiatement: ils disent que cela fonctionne mieux que pas de téléchargement

3) ok, autre correctif: suppression des 10 chiffres avant mon nom de domaine de partout dans xcode (XXXXXXXXXX.com.company.app to com.company.app)

Ne fonctionne toujours pas.

4) Vérifiez que mon appareil ne soit pas connecté à un compte itunes.

5) Nettoyer la construction à chaque fois et supprimer l’application de l’appareil parfois

Ne fonctionne toujours pas.

6) Enfin, lorsque vous demandez des produits, je n’ai utilisé que l’ID produit, pas l’ensemble com.entreprise.app.productID.

ET ça a marché.

Je pense que parfois nous avons plus d’une erreur, et quand vous les corrigez toutes, il est difficile de savoir exactement quelle est la cause du problème.

Maintenant je suis content

Notre problème était le dernier sharepoint la FAQ d’Apple, ” Pourquoi mes identificateurs de produit sont-ils renvoyés dans le tableau invalidProductIdentifiers ? “:

  • Vous n’avez pas rempli toutes les exigences financières (voir la section “Contrats, taxes et informations bancaires” de ce document).
  • Vous n’avez pas utilisé d’identifiant d’application explicite.
  • Vous n’avez pas utilisé le profil d’approvisionnement associé à votre identifiant d’application explicite.
  • Vous n’avez pas utilisé l’identifiant de produit correct dans votre code. Pour plus d’informations sur les identificateurs de produit, reportez-vous à QA1329, «Identificateurs de produit dans l’achat d’une application».
  • Vous n’avez pas effacé vos produits In App Purchase en vente dans iTunes Connect.
  • Vous avez peut-être modifié vos produits, mais ces modifications ne sont pas encore disponibles pour tous les serveurs App Store.
  • Si vous ou App Review avez rejeté votre dernier fichier binary dans iTunes Connect.

J’ai changé la version la plus récente (qui avait été rejetée) en “En attente de téléchargement” en cliquant sur “Prêt à télécharger des fichiers binarys” dans iTunes Connect et le problème a été résolu après environ 10 minutes.

Il semble que les gens s’embrouillent sur les ID de produit.

Vous n’avez pas besoin d’append le domaine entier (ex. Com.company.product.inappname) pour que InApp fonctionne.

Vous DEVEZ utiliser l’ID de produit EXACT que vous créez sur iTunes Connect. Dans mon cas, je viens de créer “Product1”, utilisé lorsque SKProductsRequest est appelé et c’est tout.

Plus aucune douleur.

Ce lien contient beaucoup d’informations utiles, mais il manque ce petit détail: http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/

Vous êtes-vous déconnecté de l’AppStore à partir de Settings.app? Seulement lorsque vous vous déconnectez, vous serez invité à vous reconnecter.

Les achats intégrés sont-ils activés pour votre identifiant d’application? L’ID d’application avec un caractère générique (*) ne peut pas être activé pour les achats intégrés. Pour votre application, vous devez créer un nouvel identifiant d’application.

Mes deux cents ici … http://blog.mugunthkumar.com/coding/iphone-tutorial-%e2%80%93-in-app-purchases/

Mon problème était le premier problème décrit ici:

https://devforums.apple.com/thread/23344?start=0&tstart=0

“D’abord, vous devez vous assurer que votre identifiant d’application dans le portail est correct.”

Votre achat In App est-il “Cleared for Sale”? C’est le réglage que je n’ai pas vérifié la première fois.

La définition du nom du produit sur le même nom que celui soumis à iTunes Connect a résolu le problème pour moi.

J’ai découvert aujourd’hui une autre chose qui peut causer ce genre de problème. Quelques fois, pour des raisons étranges, l’application est corrompue et tous essaient d’acheter quelque chose en fin de compte. J’ai résolu mon problème en supprimant l’application de l’appareil, en nettoyant la compilation sur Xcode et en la reconstruisant sur l’appareil.

J’ai trouvé que si votre application a un titre différent dans une autre langue, vous aurez ce problème à moins que vous ne définissiez la langue de votre iPhone à l’anglais. Cela ne se produit que dans le développement; il ne semble pas y avoir de problème pour la production.

J’ai 15 produits non consommables.

Soudain, tous les 15 d’entre eux ont commencé à apparaître comme «invalide» dans l’un de mes appareils (iPod Touch 4G), mais valide dans l’autre (iPhone 4S); très bizarre en effet.

J’ai supprimé / réinstallé et maintenant ça marche bien.

Quelqu’un a dit que vous devez lancer à partir de Xcode, mais ce n’est pas forcément vrai . J’ai beaucoup de bêta-testeurs avec des compilations AdHoc et des comptes d’utilisateur de test, et la plupart du temps, ils semblent pouvoir acheter correctement.

Cela dit, l’ensemble de l’environnement Sandbox est toujours fragile et a beaucoup de temps morts. Parfois, l’attente est la réponse.

Juste au cas où quelqu’un aurait toujours du mal à obtenir un “identifiant de produit invalide” … En plus de tout ce qui est posté dans cette rubrique, je viens d’installer le bon profil de provisioning, supprimé l’application de mon iPhone, redémarré mon appareil . J’ai essayé ceci après avoir obtenu les informations sur le produit dans le simulateur (avec le dernier XCode, maintenant c’est possible). J’étais sur le sharepoint télécharger le binary, puis de le rejeter, mais j’ai essayé ce qui précède et je l’ai reçu. J’espère que cela aide!

Assurez-vous que votre “Nom du produit” dans xcode est identique à l’application soumise à iTunes Connect.

Après avoir lutté pendant environ une journée avec le retour de produits non valides, ma solution consistait à vérifier que l’article d’achat était «approuvé par le développeur pour la vente». Même s’il y avait une marque verte à côté de l’article disant “mis en vente”, il me fallait encore télécharger une capture d’écran et sélectionner approuver.

Cela semble être une manière de faire les choses en arrière et illogique, étant donné que je teste toujours mon application et n’est pas encore prête à la mettre en vente.