J'écris du code lié à StoreKit et j'obtiens des codes d'erreur assez troublants lorsque j'essaye d'ajouter un achat à la file d'attente.
Jusqu'à présent, j'ai rencontré les codes d'erreur -1003 et -1004 et je ne trouve rien à propos de ces codes sur Internet.
L'exécution d'une demande de produit renvoie des numéros de produit valides, donc je ne sais pas pourquoi les appels à [[SKPaymentQueue defaultQueue] addPayment:aPayment];
échoueraient avec ce problème non documenté.
Le même code fonctionne également sans les erreurs sur un appareil mais pas sur un autre.
Les questions que j'ai sont, pour l'instant, sans réponse:
Que signifient ces codes? Comment puis-je atténuer ce problème? Pourquoi se produisent-ils pour les tentatives d'achat et non pour les demandes de produits?
Le dépannage que j'ai effectué comprend la régénération d'un certificat de signature et d'un profil de provisionnement, la modification des réseaux WiFi, le nettoyage, la création et la réinstallation de tous les logiciels et composants associés, et aucune de ces choses individuellement ou ensemble n'a aidé à résoudre le problème.
ÉDITER:
J'ai trouvé une discussion à ce sujet sur les forums de développement Apple, mais personne d'Apple n'a répondu: https://devforums.apple.com/thread/107121?tstart=75 (compte de développeur iOS requis pour afficher)
ÉDITER:
J'ai reçu le code d'erreur -1001 aujourd'hui, pour ajouter à cette liste des problèmes inexplicables et intermittents. Toujours aucune responsabilité d'Apple, que je puisse trouver.
ÉDITER:
Je soupçonne que ces codes d'erreur sont générés aléatoirement et n'indiquent vraiment que le bac à sable est en panne. Quelqu'un d'autre rencontre ce problème?
la source
NSURLErrorUnknown
. Des indices?J'ai des problèmes similaires, dans mon cas semblent être liés à la connectivité réseau:
Choses à vérifier:
Désolé, aucune idée de comment résoudre ce problème. Débogage juste ceci, essayant de découvrir quel est le problème (-1021, -1001, -1009)
Mise à jour: la recherche Google a été très gentille pour trouver ceci:
la source
voir NSURLError.h Define
la source
J'utilise la méthode suivante dans mon projet
Ensuite, je vérifie simplement le code d'erreur et affiche l'alerte s'il est dans la liste
Mais comme vous pouvez le voir, j'ai commenté des codes qui, à mon avis, ne correspondent pas à ma définition de PAS D'INTERNET. Par exemple, le code -1012 (échec d'authentification.) Vous pouvez modifier la liste comme vous le souhaitez.
Dans mon projet, je l'utilise lors de la saisie du nom d'utilisateur / mot de passe de l'utilisateur. Et à mon avis, les erreurs de connexion réseau (physique) pourraient être la seule raison d'afficher la vue d'alerte dans votre application basée sur le réseau. Dans tous les autres cas (par exemple une paire nom d'utilisateur / mot de passe incorrecte), je préfère faire une animation conviviale personnalisée, OU simplement répéter la tentative infructueuse à nouveau sans aucune attention de l'utilisateur. Surtout si l'utilisateur n'a pas explicitement lancé un appel réseau.
Salutations à martinezdelariva pour un lien vers la documentation.
la source
J'ai trouvé un nouveau code d'erreur qui n'est pas documenté ci-dessus: CFNetworkErrorCode -1022
la source
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
J'ai trouvé cette page dans la documentation qui a une énumération objective-c pour tous les codes d'erreur sous NSURLErrorDomain.
https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Constants/index.html#//apple_ref/doc/constant_group/URL_Loading_System_Error_Codes
la source