Les raisons de rejeter mon application sont les problèmes de connectivité réseau ipv6.
Premièrement, j’utilise AWS comme serveur principal. J’utilise mon nom de domaine pour me connecter à mon serveur comme http://ec2-XX-XXX-XXX-XXX.compute-1.amazonaws.com:80/parse où X est un nombre
Deuxièmement, j’ai essayé de reproduire le problème en: a) Accédez au paramètre de mon iPhone -> Developer -> Status (Newwork Link Conditioner) -> créez un profil identique à LTE mais le protocole est IPv6 b) Faites la même chose qu’Apple suggérer. Utilisez l’ethernet de foudre pour connecter mon MacBook et partager le wifi avec mon iPhone. Mon application fonctionne dans les deux cas.
Troisièmement, je regarde AWS sur la prise en charge d’IPv6. Voici le lien. http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#AAAAFormat Il semble que rien ne devrait être changé. Je ne suis pas tout à fait sûr car je ne connais pas le serveur.
Aucune suggestion? Merci.
METTRE À JOUR
Si vous utilisez la classe Rechability d’ancienne pomme et si vous utilisez l’ancienne classe AFNetworkReachabilityManager d’AFNetworking
Réponse – Je n’ai implémenté aucun code pour Reachability ou AFNetworking. Dois-je m’inquiéter de ce que ces classes sont dans d’autres Frameworks comme Parse?
Si vous utilisez des adresses IP codées en dur
Réponse: Mon nom de domaine est http://ec2-XX-XXX-XXX-XXX.compute-1.amazonaws.com:80/parse où X est un nombre. Donc, je pense que ça devrait aller.
il y a peu de points qui causent fréquemment ce problème.
Rechability
vieille pomme, remplacez-la par la dernière, car l’ancienne Rechability class
n’est pas compatible avec le réseau `ipv6 only. AfNetworking
, si vous utilisez l’ancienne AFNetworking's AFNetworkReachabilityManager class
remplacez cette classe par la dernière classe AFNetworkReachabilityManager
ou remplacez la bibliothèque entière par la plus récente. hard coded IP addresses
comme api
remplacez-le par un nom de domaine. Par exemple, vous ne devriez pas utiliser api comme: http://192.168.1.11:4444/login
. Votre API devrait être comme: http://api.example.com/login
Comme l’indique le document Apple,
Assurez-vous de ne pas transmettre les littéraux d’adresse IPv4 en notation par points à des API telles que getaddrinfo et SCNetworkReachabilityCreateWithName. Au lieu de cela, utilisez des infrastructures réseau de haut niveau et des versions indépendantes de l’adresse des API, telles que getaddrinfo et getnameinfo, et transmettez-leur des noms d’hôte ou des noms de domaine complets (FQDN). Voir getaddrinfo (3) Page de manuel des outils de développement Mac OS X et getnameinfo (3) Page de manuel des outils de développement Mac OS X.
Remarque: sous iOS 9 et OS X 10.11 et versions ultérieures, NSURLSession et CFNetwork synthétisent automatiquement les adresses IPv6 à partir des littéraux IPv4 localement sur les périphériques fonctionnant sur les réseaux DNS64 / NAT64. Cependant, vous devriez toujours travailler pour débarrasser votre code des littéraux d’adresse IP
ipv6
(ce n’est pas une préoccupation majeure car presque le serveur est compatible avec ipv6) Vous pouvez consulter la documentation Apple pour plus de détails
Vous allez savoir que vous pouvez créer un réseau IPv6 uniquement sur votre Mac pour le tester également avec la documentation d’Apple ci-dessus!
Mon application est approuvée.
La seule chose que je change est
Référence pour les autres utilisateurs d’API Google Map, hébergement Parse dans AWS et connexion Facebook:
Je me demande encore pourquoi Apple a déclaré que mon application ne répondait pas aux exigences IPv6 lors de ma dernière soumission.