Comment puis-je append NSAppTransportSecurity à mon file info.plist?

https://developer.apple.com/videos/wwdc/2015/?id=711 @ 5: 55

Je ne peux pas sembler pouvoir append ceci à mon info.plist. Il n'y a pas de valeur. Je cours XCode version 7.0 bêta (7A121l), et le test sur iOS9.

Étant donné que je ne peux pas déclarer spécifiquement les URL que je veux voir dans la video, je reçois toujours: «App Transport Security a bloqué un chargement de ressources HTTP (http: //) en clair car il n'est pas sécurisé. Fichier Info.plist "erreurs.

Cependant, je ne semble pas pouvoir le configurer. Des idées?

Essayez avec ceci — a travaillé pour moi dans Xcode-beta 4 7.0

<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>yourdomain.com</key> <dict> <!--Include to allow subdomains--> <key>NSIncludesSubdomains</key> <true/> <!--Include to allow HTTP requests--> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> <!--Include to specify minimum TLS version--> <key>NSTemporaryExceptionMinimumTLSVersion</key> <ssortingng>TLSv1.1</ssortingng> </dict> </dict> </dict> 

Aussi une option de plus, si vous voulez désactiver ATS, vous pouvez utiliser ceci:

 <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key><true/> </dict> 

Mais ce n'est pas recommandé du tout. Le server doit avoir les certificates SSL et donc il n'y a pas de fuites de confidentialité.

Vous devez append juste la key NSAllowsArbitraryLoads à YES dans le dictionary NSAppTransportSecurity dans votre file info.plist.

Par exemple,

  <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> 

entrez la description de l'image ici

Cela ne fonctionnait pas pour moi, mais cela a fait l'affaire:

 <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key><true/> </dict> 

Juste pour clarifier … Vous devriez toujours utiliser httpS

Mais vous pouvez le contourner en ajoutant l'exception:

entrez la description de l'image ici

Xcode 8.2, iOS 10

 <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> 

Mise à jour de la réponse (après wwdc 2016):

 IOS apps will require secure HTTPS connections by the end of 2016 

App Transport Security, ou ATS, est une fonctionnalité introduite par Apple dans iOS 9. Lorsque ATS est activé, il oblige une application à se connecter aux services Web via une connection HTTPS plutôt que via HTTP non sécurisé.

Cependant, les développeurs peuvent toujours désactiver ATS et autoriser leurs applications à envoyer des données via une connection HTTP, comme indiqué dans les réponses ci-dessus. À la fin de 2016, Apple rendra ATS obligatoire pour tous les développeurs qui souhaitent soumettre leurs applications à l'App Store. lien

 <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>com</key> <dict> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> </dict> <key>net</key> <dict> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> </dict> <key>org</key> <dict> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> </dict> </dict> </dict> 

Cela permettra de se connecter à .com .net .org

Une mauvaise nouvelle pour les développeurs utilisant NSAppTransportSecurity.

 UPDATE: [Apple will require HTTPS connections for iOS apps by the end of 2016] 

https://techcrunch.com/2016/06/14/apple-will-require-https-connections-for-ios-apps-by-the-end-of-2016/

Pour en savoir un peu plus sur la réponse de ParaSara: la security de l'App Transport deviendra obligatoire et si vous tentez de l'éteindre, votre application pourra être refusée.

En tant que développeur, vous pouvez désactiver la security App Transport si votre code de réseau ne fonctionne pas avec celui-ci, et vous souhaitez poursuivre le développement avant de résoudre tout problème. Dites dans une équipe de cinq, quatre peuvent continuer à travailler sur d'autres choses pendant que l'on résout tous les problèmes. Vous pouvez également désactiver la security du transport des applications en tant qu'outil de debugging si vous rencontrez des problèmes de réseau et que vous souhaitez vérifier si elles sont causées par la security du transport App. Dès que vous le savez, vous devriez le rallumer immédiatement.

La solution que vous devez utiliser à l'avenir est de ne pas utiliser http du tout, sauf si vous utilisez un server tiers qui ne prend pas en charge https. Si votre propre server ne supporte pas https, Apple aura un problème avec cela. Même avec des servers tiers, je ne parierais pas qu'Apple l'accepte.

Pareil avec les différents controls pour la security du server. À un certain point, Apple n'acceptera que des exceptions justifiables.

Mais surtout, considérez ceci: Vous mettez en danger la vie privée de vos clients. C'est un gros non-non dans mon livre. Ne fais pas ça. Corrigez votre code, ne requestz pas l'autorisation d'exécuter du code dangereux.

 <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>uservoice.com</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSExceptionRequiresForwardSecrecy</key> <false/> </dict> </dict> </dict> 

XCODE 8, Swift 3: Vous devez append une ligne: **

"Paramètre de security du transport de l'application"

** dans la list des propriétés info.plist inside information.

Dans la command line mac shell , utilisez la command suivante:

 plutil -insert NSAppTransportSecurity -xml "<array><ssortingng> hidden </ssortingng></array>" [location of your xcode project]/Info.plist 

La command va append toutes les valeurs nécessaires dans votre file plist.