Ce que cela signifie
You must supply a justification during App Store review if you set the key's value to YES, as described in Provide Justification for Exceptions.
Apple, NSAllowsArbitraryLoads
Selon la documentation d'Apple, une justification doit être fournie lors de l'examen si la valeur est YES. App Transport Security impose HTTPS avec un TLS moderne pour le chargement d'URL. Les erreurs ci-dessus sont celles que voit une application quand ATS bloque une requête http:// ; désactiver ATS globalement les fait disparaître mais supprime la protection pour tous les hôtes. Sur iOS 10 et plus, NSAllowsArbitraryLoads est ignoré si NSAllowsArbitraryLoadsForMedia, NSAllowsArbitraryLoadsInWebContent ou NSAllowsLocalNetworking est présent ; le contrôle en tient compte.
Échéance
Pas de date : ATS ne produit aucune erreur à l'envoi. La question se pose lors de l'App Review.
Corriger
1. Passer les points de terminaison en HTTPS
Y compris les CDN d'images, les points de terminaison d'analytics et des SDK publicitaires, qui sont la raison habituelle de l'ajout de la clé.
2. Remplacer l'interrupteur global par des exceptions par domaine
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>legacy.example.com</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>Pour un contenu chargé uniquement dans une web view, NSAllowsArbitraryLoadsInWebContent est plus restreint que l'interrupteur global.
Vérifier avant de soumettre
Déposez l'IPA sur la page de contrôle des stores. Elle exécute APPSTORE-ATS avec les dates de cette page, puis supprime le fichier : rien de l'application n'est conservé. Le même moteur tourne hors ligne dans la CLI Narvy et renvoie le code 1 quand un point bloquant est trouvé, ce qui permet de bloquer un job de CI.
narvy store-check MyApp.ipa --lang frQuestions fréquentes
Apple refusera-t-il l'application à cause de NSAllowsArbitraryLoads ?
La documentation d'Apple exige une justification lors de l'examen quand la valeur est YES. L'acceptation d'une justification donnée relève de l'App Review : c'est pourquoi le contrôle signale un avertissement, pas un point bloquant.
Pourquoi mon application est-elle signalée pour des exceptions par domaine ?
Ce n'est pas un échec : les exceptions avec NSExceptionAllowsInsecureHTTPLoads sont listées en info pour que vous confirmiez que chaque hôte a toujours besoin du HTTP en clair.