46 votes

Erreur iPhone In-App Purchase Store Kit -1003 "Impossible de se connecter à l'iTunes Store

J'ai travaillé sur l'ajout d'achats in-app et j'ai pu créer et tester des achats in-app en utilisant Store Kit (yay !). Pendant les tests, j'ai exercé mon application d'une manière qui a provoqué un crash de l'application au milieu de l'achat (je suppose que le cycle normal de réception de paymentQueue:updatedTransactions et d'appel de finishTransaction a été interrompu).

Maintenant, je ne parviens pas à mener à bien les transactions et je ne reçois que des transactions avec l'état de transaction SKPaymentTransactionStateFailed lorsque paymentQueue:updatedTransactions est appelé.

Le code transaction.error.code est -1003 et la transaction.error.localizedDescription est "Cannot connect to iTunes Store" !

J'ai essayé de supprimer tous les produits d'iTunesConnect, et de les reconstruire en utilisant des identifiants différents, mais cela n'a rien donné. J'ai également essayé d'utiliser l'application App Store pour me connecter réellement à l'App Store et télécharger quelques applications afin d'avoir une connectivité. Enfin, j'ai visité l'application Settings:Store pour m'assurer que je suis déconnecté de mon compte App Store normal.

0 votes

Avez-vous trouvé un moyen de résoudre votre problème ? J'ai rencontré ce problème récemment et avant que le sandboxserver ne tombe en panne, la boutique fonctionnait sur mon iPad. Après sa remise en ligne, elle ne fonctionnait plus. J'ai alors copié le même code que celui utilisé dans le projet iPad vers le projet iPhone et je l'ai testé avec deux iphones différents et là, ça a marché. Mais cela ne semble plus fonctionner sur l'application iPad. Quel est le problème ?

1 votes

Le message d'erreur "Impossible de se connecter à iTunes Store" semble être un message générique utilisé pour différents codes d'erreur liés au réseau lors de l'utilisation de StoreKit. Le code spécifique -1003 est kCFURLErrorCannotFindHost défini dans CFNetworkErrors.h .

1 votes

J'ai le même problème mais malheureusement, à la deuxième tentative, l'achat est confirmé.

40voto

Ortwin Gentz Points 15102

J'ai eu une situation similaire et j'ai vidé le trafic réseau de l'iPhone pour voir ce qui se passe. J'ai découvert que le magasin normal était contacté au lieu du bac à sable. Il a été utile de supprimer l'application de l'appareil, de la nettoyer et de la reconstruire/installer à nouveau. Apparemment, quelque chose s'est mal passé avec le profil de développement.

Mise à jour : Pour décharger le trafic réseau d'un iPhone non emprisonné, il suffit d'utiliser le partage d'Internet sur votre Mac et de configurer votre iPhone pour qu'il utilise le WiFi de votre Mac. Ensuite, tcpdump -n -i en1 sur votre Mac fera l'affaire.

3 votes

J'ai dû supprimer l'application et nettoyer le projet pour que cela fonctionne.

0 votes

Je viens de devoir recourir au partage de réseau et à tcpdump après avoir obtenu une erreur -1003. On dirait que StoreKit fait une requête DNS pour p40-sandbox.itunes.apple.com. mais en obtenant NXDOMAIN pour lui (c'est-à-dire qu'il n'y a pas d'entrée DNS pour ce nom). Donc, dans mon cas particulier, il semble que la faute d'Apple.....

0 votes

J'ai suivi le guide d'Apple pour mettre en œuvre les achats in-app et lorsque j'essaie d'acheter quelque chose, j'obtiens le code d'erreur 3 et la description Cannot connect to iTunes Store. J'ai essayé de vider le réseau du téléphone et il semble que le téléphone se connecte correctement au bac à sable. J'ai également essayé d'ajouter un nouvel utilisateur et je me suis déconnecté du magasin. Je n'ai même pas l'écran pour entrer mon utilisateur de test... juste l'erreur ci-dessus.

26voto

Adam Rosenfield Points 176408

Si vous obtenez l'erreur 0 "Impossible de se connecter à l'iTunes Store" (qui, je le sais, n'est pas l'erreur -1003 que le PO a demandé, mais une recherche sur le web pour l'erreur 0 mène également ici), cela peut être causé par deux problèmes possibles :

  1. Vous passez le mauvais identifiant de produit. Si c'est le cas, vous obtiendrez l'erreur 0 peu de temps après avoir appelé -[SKPaymentQueue addPayment:] avant de recevoir la fenêtre popup vous demandant de confirmer le paiement.
  2. Votre utilisateur test a été invalidé. Cela peut arriver si vous vous connectez accidentellement à l'App Store avec votre utilisateur de test. Dans ce cas, vous obtiendrez l'erreur 0 après avoir saisi votre mot de passe pour confirmer votre paiement.

Pour résoudre le problème n°1, transmettez l'ID produit correct. Pour résoudre le problème n°2, créez un nouvel utilisateur de test sur iTunes Connect, et supprimez éventuellement l'ancien utilisateur de test.

0 votes

Une description claire et concise du problème et de la solution. Cela m'a vraiment aidé après avoir passé Dieu sait combien de temps à essayer de résoudre ce même problème. Merci !

0 votes

Créez un nouvel utilisateur test pour le fixer. Merci !

0 votes

Merci beaucoup @Adam ! J'ai eu la même erreur. Votre point numéro 2 a résolu mon problème !

15voto

thomax Points 1895

J'ai eu un problème similaire, j'obtenais "Cannot connect to iTunes Store" avec Code=0. Voici comment je l'ai résolu, après avoir essayé tous les autres conseils rituels trouvés sur Internet, du retéléchargement de mes certificats à la réinitialisation de tous les paramètres de mon appareil en passant par le sacrifice d'une chèvre noire vierge :

Dans le résumé de l'application, j'avais l'habitude d'indiquer mon numéro de version dans le champ "build", mais rien dans le champ "version". Cela me semblait étrange, j'ai donc déplacé le numéro de version de "build" à "version". Cela a entraîné l'erreur susmentionnée. En replaçant le numéro de version dans le champ "build", j'ai résolu l'erreur.

0 votes

J'avais aussi la version dans le champ Build mais cela n'a pas aidé. Vous avez probablement fait autre chose en même temps.

2 votes

Je ne peux pas vous remercier assez d'avoir posté cette réparation. J'ai essayé tous les autres correctifs. Il s'avère que laisser "Build" vide a causé cela. Merci ! C'était en fait pour le code d'erreur : 0

1 votes

Je devenais fou et la solution était totalement inattendue. Vous m'avez sauvé au moins 24h de vie ! Merci

14voto

HelloWorld Points 1650

Ajoutez un nouvel utilisateur de test pour votre application.

11voto

kexik Points 530

Assurez-vous que la date et l'heure sont correctes dans les paramètres. Sinon, il ne parvient pas à établir une connexion SSL avec le magasin !

0 votes

C'était exactement mon problème. Merci !

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