Réseaux IPv6 uniquement

Depuis le 1er juin 2016, toutes les apps soumises sur l’App Store doivent prendre en charge les réseaux IPv6 uniquement. Cela n’impliquera aucun changement pour la majorité des apps, dans lesquelles les réseaux IPv6 sont déjà pris en charge par les API NSURLSession et CFNetwork. Cependant, si votre app est basée sur des API spécifiques aux réseaux IPv4 ou des adresses IP codées en dur, vous devrez y apporter des modifications. Veillez à tester sa compatibilité avec les réseaux IPv6 avant de soumettre votre app sur l’App Store à des fins d’examen.

Pour plus d’informations sur la prise en charge des réseaux IPv6, consultez la page Prise en charge des réseaux IPv6 DNS64/NAT64 (anglais).

Test de votre app dans un environnement IPv6 uniquement

Vous devez tester votre app sur un réseau IPv6 uniquement. Si vous n’en avez aucun à disposition, vous pouvez configurer un réseau de test en suivant les instructions de l’article Test régulier de la compatibilité IPv6 DNS64/NAT64 (anglais).

IMPORTANT : si vous effectuez le test sur un appareil compatible avec les réseaux étendus sans fil (WWAN), veillez à désactiver le WWAN avant le lancement du test. Cela permettra de garantir que votre appareil utilise le Wi‑Fi IPv6 uniquement.

Remarque : vous pouvez désactiver le WWAN en accédant à Réglages > Données cellulaires > Données cellulaires (ou Réglages > Données mobiles > Données mobiles pour les emplacements anglophones extérieurs à l’Amérique du Nord).

Références aux réseaux IPv4

Vous n’avez pas besoin de supprimer toutes les références aux constructions IPv4 uniquement dans votre app, tant que leur comportement ne pose pas problème dans un environnement IPv6 uniquement.

IMPORTANT : nous vous encourageons à adopter des API compatibles avec la famille d’adresses plutôt que de conserver des chemins de code séparés pour les réseaux IPv4 et IPv6.

Mises à jour du serveur

Vous n’avez pas besoin de mettre à jour votre serveur immédiatement s’il s’exécute sur Internet au sens large. Votre serveur sera accessible aux appareils IPv6 uniquement via DNS64/NAT64.

Remarque : à terme, vous devrez naturellement mettre à jour votre serveur afin qu’il soit compatible IPv6.

Si votre serveur est intégré au sein de votre app iOS (par exemple, un serveur web permettant aux utilisateurs et utilisatrices de transférer des fichiers vers et depuis votre app), assurez‑vous de son fonctionnement dans un environnement IPv6 uniquement.

Synthèse depuis une adresse IPv4

Comme décrit dans l’article Utiliser les API système pour synthétiser les adresses IPv6 (anglais), en commençant par iOS 9.2 et OS X 10.11.2, vous pouvez vous servir de la commande getaddrinfo pour synthétiser une adresse IPv6 depuis une adresse IPv4. Votre app sera testée sur un appareil exécutant la dernière version d’iOS.

AVERTISSEMENT : il est difficile de synthétiser les adresses IPv6 par vous‑même. Plus spécifiquement, former une adresse IPv6 en combinant une adresse IPv4 avec le préfixe Well‑Known (64:ff9b::/96) n’est pas sécurisé. Cela peut fonctionner sur certains réseaux NAT64, mais il ne s’agit pas d’une solution générale au problème.

Accessoires basés sur le réseau IPv4

Nous vous recommandons fortement de modifier votre accessoire de sorte qu’il fonctionne sur un réseau IPv6 uniquement, que ce soit en le rendant compatible avec le protocole IPv6 ou avec l’adressage IPv4 Link‑local. Ces deux options permettront à votre app de communiquer avec votre accessoire lorsque les deux appareils sont placés sur un réseau IPv6 uniquement.

Si votre accessoire ne prend en charge aucune de ces options et que vous ne pouvez pas le mettre à jour en ce sens, il restera fondamentalement incompatible avec les exigences de prise en charge du réseau IPv6.

Remarque : cela ne s’applique qu’a la communication de votre app avec votre accessoire sur un réseau local. Les autres aspects de votre app devraient normalement fonctionner dans un environnement IPv6 uniquement.