iPhone In-App Purchase Store kit error -1003 " ne peut pas se connecter à 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 le kit du magasin (yay!). Pendant les tests, j'ai exercé mon application d'une manière qui a causé le plantage mid purchase de l'application (donc je suppose que le cycle normal de réception paymentQueue:updatedTransactions et calling finishTransaction a été interrompu).

maintenant je ne suis pas capable de terminer avec succès toutes les transactions et au lieu de cela je n'obtiens que des transactions avec transactionState Skpaymenttransaction statefailed when paymentQueue: updatedTransactions is called.

la transaction.erreur.le code est -1003 et la transaction.erreur.localizedDescription est "Impossible de se connecter à l'iTunes Store"!

j'ai essayé de supprimer tous les produits d'iTunesConnect, et les ai reconstruits en utilisant des identificateurs différents, mais cela n'a pas aidé. J'ai également essayé D'utiliser L'application App Store pour vraiment se connecter à la vraie App Store et télécharger quelques applications, donc j'ai la connectivité. Enfin, j'ai visité les paramètres:Store app pour m'assurer que je suis sorti de mon compte app store normal.

43
demandé sur Ortwin Gentz 2009-11-11 23:02:35

20 réponses

j'ai eu une situation similaire et j'ai jeté le trafic réseau de l'iPhone pour voir ce qui se passe. J'ai trouvé que le magasin normal a été contacté au lieu du bac à sable. Il m'a aidé à supprimer l'application de l'appareil, nettoyer et créer/installer à nouveau. Apparemment, quelque chose avec le profil de développement avait mal tourné.

mise à Jour: pour décharger le trafic réseau d'un iPhone non jailbroken, il suffit D'utiliser le partage Internet sur votre Mac et configurer votre iPhone pour utiliser votre Mac WiFi. Puis tcpdump -n -i en1sur votre Mac fera l'affaire.

39
répondu Ortwin Gentz 2011-03-02 09:08:57

si vous obtenez l'erreur 0 "ne peut pas se connecter à iTunes Store" (qui je me rends compte n'est pas l'erreur -1003 que OP a demandé, mais une recherche web pour l'erreur 0 mène aussi ici), cela peut être causé par deux problèmes possibles:

  1. vous utilisez le mauvais Identificateur de produit. Si c'est le cas, vous obtiendrez l'erreur 0 peu de temps après avoir appelé -[SKPaymentQueue addPayment:], avant d'obtenir le popup vous demandant de confirmer le paiement.
  2. votre utilisateur test est devenu invalide. Cela peut se produire si vous vous connectez accidentellement à L'App Store avec votre utilisateur de test. Lorsque cela se produit, vous obtiendrez l'erreur 0 après avoir entré votre mot de passe pour confirmer votre paiement.

pour corriger le problème #1, Passez le bon numéro de produit. Pour corriger le problème #2, Créer un nouvel utilisateur de test sur iTunes Connect, et éventuellement supprimer l'ancien utilisateur de test.

24
répondu Adam Rosenfield 2011-08-24 14:41:20

j'ai eu un problème similaire, j'ai eu "Cannot connect to iTunes Store" avec Code=0. C'est ainsi que je l'ai résolu, après avoir essayé tous les autres conseils ritualistes trouvés sur Internet, du téléchargement de mes certificats à la réinitialisation de tous les paramètres de mon appareil au sacrifice d'une chèvre noire vierge:

dans le résumé cible de l'application, j'avais mon numéro de version dans le champ "construire", mais rien dans le champ "version". Cela m'a semblé étrange, alors j'ai déplacé le numéro de version de "construire" à la "version". Il en est résulté l'erreur susmentionnée. Le déplacement du numéro de version vers "build" a résolu l'erreur.

15
répondu thomax 2011-09-24 19:44:06

Ajouter un nouvel utilisateur de test pour votre application.

13
répondu HelloWorld 2011-01-01 02:47:23

assurez-vous que vous avez la date et l'heure correctes définies dans les paramètres. dans le cas contraire, il ne parvient pas à faire une condition SSL au magasin!!

11
répondu k3a 2011-06-14 13:20:15

j'ai eu la même erreur, et après avoir lu quelques discussions sur le forums de développeurs, j'ai réinitialisé les paramètres de mon appareil (Paramètres->Général->Réinitialiser->Réinitialiser tous les paramètres), qui l'a clarifié. Ça semblait radical, mais ça a marché.

6
répondu Christopher Pickslay 2011-07-01 20:06:46

j'ai eu la même erreur qui semblait surgir de nulle part (fonctionnait bien un jour, mais le lendemain il me donnait ces erreurs environ 2 sur 3 fois j'ai essayé de tester mon achat In-app).

puis j'ai visité L'App Store (en essayant de faire un autre achat réel), et j'ai réalisé qu'ils avaient un nouvel accord d'utilisateur qu'ils voulaient que je vérifie. Après que j'ai fait cela, quand je suis retourné à ma propre application et essayé l'achat de test à nouveau, il fonctionnait bien et n'ont pas eu d'erreurs depuis. Donc je soupçonne que j'ai eu l'erreur parce qu'ils voulaient que je vérifie le nouveau contrat d'utilisation.

maintenant, la seule chose que je me demande est s'il y a un moyen pour mon achat In-app de transmettre cette invite à mes utilisateurs au lieu de leur donner une erreur mystérieuse?

2
répondu frandogger 2010-10-01 04:26:44

ce qui a fonctionné pour moi était de désinstaller mon application à partir du périphérique d'essai, puis d'installer une nouvelle copie à partir de Xcode.

1
répondu lifjoy 2011-09-08 19:27:01

SKPaymentTransactionState indique que SKPaymentTransactionStateFailed avant que votre requête soit ajoutée à la file d'attente du serveur.

@class SKPayment;

enum {
    SKPaymentTransactionStatePurchasing,    // Transaction is being added to the server queue.
    SKPaymentTransactionStatePurchased,     // Transaction is in queue, user has been charged.  Client should complete the transaction.
    SKPaymentTransactionStateFailed,        // Transaction was cancelled or failed before being added to the server queue.
    SKPaymentTransactionStateRestored       // Transaction was restored from user's purchase history.  Client should complete the transaction.
};
typedef NSInteger SKPaymentTransactionState;

Et SKPaymentTransaction Discussion sur L'erreur de référence de classe dit:

la propriété error n'est pas définie sauf quand transactionState est défini à SKPaymentTransactionStateFailed. Votre application peut lire la propriété error pour déterminer pourquoi la transaction a échoué.

Donc, transaction.erreur.localizedDescription est "Impossible de se connecter à l'iTunes Store"! est une erreur générale message.. Je reçois également ce message d'erreur régulièrement tout en testant mes achats InApp.

Quelques conseils u peux faire,

  1. extraire tous les produits de app store en utilisant SKProductsRequest et vérifier sa response.products contenir votre demande productIdentifier. pour cette utilisation,

    SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:[objProducts allKeys]]];
    //pass product identifier array as argument
    [request start];  
    

Et Attraper réponse :

    - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
        NSArray *myProduct = response.products;
}

pour que vous puissiez décider si vous pouvez communiquer avec app store. et votre identifiant de produit est-il.

  1. assurez-vous que vous utilisez dans le compte D'utilisateur de test D'application pour le test.
  2. et vous utilisez le même provisionnement app-id que vous avez configuré dans App purchase.

merci

1
répondu Naveen Shan 2015-05-12 10:14:25

j'ai joué avec le fait d'aller à L'App Store puis de revenir à Settings/Store pour M'inscrire. J'ai fait cela 3 fois, en revisitant mon application à chaque fois et en ajoutant la sortie de débogage NSLog, et maintenant je suis en mesure de continuer à tester mon code d'achat In-app sans erreur -1003. Je ne suis pas sûr de la raison exacte pour laquelle cela fonctionne à nouveau, mais je suis assez certain est n'est pas un changement de code de ma part comme tout ce que je faisais était l'ajout NSLogs et la relance de mon application.

0
répondu Rei 2009-11-11 20:52:26

ouais, si vous avez connecté votre iPad/iPhone à un autre ordinateur au départ, et que vous l'utilisez maintenant sur un autre, vous devez absolument vous déconnecter sur votre iPad, vous connecter à votre compte w/ normal sur ITunes sur votre MAC, puis vous synchroniser.

aussi, assurez-vous que votre iPad "WIFI" est allumé...

0
répondu PerimeterMan 2010-05-05 20:29:40

j'ai nettoyé toutes les cibles de XCode et supprimé manuellement l'application de mon appareil, puis J'ai construit et exécuté à partir de XCode et il a corrigé un problème similaire (même message d'erreur mais code d'erreur différent:-1009)

0
répondu wasabi 2011-02-16 14:50:32

malheureusement, j'ai rencontré un problème qui n'a pas été documenté ici. Les Purches In-App - ne fonctionneront pas tant que vous n'aurez pas accepté tous les contrats liés aux achats app - et in-app -. Alors assurez-vous que vous (ou votre client) mis en place tous les contrats dans iTunesConnect correctement, ils apparaissent dans la section" contrats en vigueur " pour faire fonctionner vos achats.

0
répondu Thomas Kekeisen 2012-11-12 11:49:42

notre problème était que dans Itunes Connect nous avions le mauvais Identificateur de bundle. Quelqu'un avait créé l'application avant hand et nous avons dû éditer l'application et régler son appId sur le nouveau.

0
répondu trcarden 2013-02-22 23:40:11

j'ai eu deux problèmes qui ont causé ceci:

1) j'avais copié le code IAP à partir d'une autre application (de travail) mais j'avais oublié de configurer mon observateur:

observateur = [[IAPHelper alloc] init]; [[SKPaymentQueue defaultQueue] addTransactionObserver: observer];

2) j'ai été connecté à iTunes dans les réglages de mon appareil. Vous ne pouvez utiliser un utilisateur de test que dans le bac à sable - je me suis déconnecté et ça a fonctionné à nouveau.

0
répondu JanB 2014-10-18 10:44:20

il suffit de vous déconnecter de votre compte iTunes (ne vous connectez pas à votre compte test maintenant! ) , et de commencer votre programme. Lorsque InApp acheter il Demander vos détails de connexion, vous devez entrer vos informations de Compte test.

0
répondu Can Gülse 2015-01-16 13:40:08

j'ai essayé toutes les solutions proposées dans le fil ici, mais en vain. Dans mon cas, j'ai eu un identifiant de paquet wild-card à partir du même nom de domaine que celui que j'ai utilisé en créant l'identifiant de paquet pour le profil d'approvisionnement d'achat In-app.

Voici comment j'ai corrigé le problème et peut vous aider à corriger le vôtre (voir ci-joint):

1) Connectez votre iPhone à Mac.

2) sous la rubrique "Dispositifs" (dans Xcode > menu de la fenêtre > fenêtre de L'Organisateur), sélectionnez le Option "Provisioning Profiles" pour votre iPhone. Vous verrez tous les profils d'approvisionnement qui résident actuellement sur votre iPhone.

3) Supprimer soigneusement tous les profils d'approvisionnement commençant par le nom de domaine particulier dans l'Identificateur de faisceau (com.MYDOMAIN.* ) surtout ceux qui utilisent wild-card à l'exception de celui que vous créez spécifiquement avec la capacité de faire L'achat In-App (com.MYDOMAIN.inappidentifier).

4) Installez de nouveau l'application et testez votre implémentation avec une nouvelle iTunes connect utilisateur de test (sandbox)

SCREENSHOT:

enter image description here

0
répondu programmer 2015-01-17 12:04:59

j'ai été bloqué pendant 2 jours, voici ma solution:

  1. supprimer tous les produits-In-app-products.
  2. Supprimer dans l'application-produits.
  3. créer un testeur de bac à sable.
  4. déconnectez mon compte apple de l'appareil (iPad), puis essayer d'acheter le produit.
  5. il va demander la connexion, puis se reconnecter avec le compte sandbox tester.
  6. L'Achat passe par.

je pense que l'important, c'est le bac à sable testeur de compte, je ne l'ai jamais utilisé car j'ai toujours eu erreur-0.

0
répondu iiley Chen 2015-12-30 15:37:29

Dans mon cas, J'ai tout essayé sur internet, mais rien n'a marché.

Apple a en fait cassé le système de paiement de la production, et le bac à sable. J'ai juste eu à attendre deux jours, et il a commencé à travailler.

0
répondu Erti-Chris Eelmaa 2017-04-01 07:15:17

Achat Dans l'Application de la FAQ dit:

Impossible de se connecter à l'iTunes Store

"Impossible de se connecter à l'iTunes Store" problème peut être dû à une ou plusieurs des raisons suivantes:

  • Le bac à sable peut être inaccessible.
  • votre application n'a pas de version bundle (CFBundleVersion). Voir Définition du numéro de Version et construction de la chaîne pour plus d'informations.
  • votre application fonctionne dans le simulateur,qui ne supporte pas l'achat In-app.
  • Vous êtes tenté d'acheter un produit qui n'est pas disponible à la vente. Consultez la rubrique interrogation de L'App Store pour obtenir des informations sur le produit avant de présenter l'interface utilisateur de votre application pour plus d'informations.

dans mon cas, l'erreur s'est produite parce que j'utilisais le simulateur Xcode. Ça a commencé quand j'ai utilisé mon appareil.

Même dans le Achat In-App Guide De Programmation dit utilisez le développement iOS périphérique a un suggestion de test étape.

0
répondu ricardopereira 2018-02-01 02:09:20