J'utilise la bibliothèque Socket.IO dans Swift et je continue à avoir cette erreur:
App Transport Security a bloqué une ressource HTTP en clair (http: //) charger car il est peu sûr. Des exceptions temporaires peuvent être configurées via le fichier Info.plist de votre application.
quand j'essaye d'envoyer une demande de http. J'ai ajouté les clés à plist selon la documentation officielle d'Apple, mais cela n'a pas aidé.
Vous devez le corriger comme ceci:
Pour faciliter les choses, c’est le bon fichier XML dans le fichier info.plist
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
remplacez la localhost
par votre serveur actuel
Consultez la table pour les options NSAppTransportSecurity
Si vous voulez toutes les communications avec n'importe quel domaine, vous pouvez faire ceci:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Cependant, vous devez utiliser les dernières technologies uniquement au cours de la phase de développement.
Un autre moyen de résoudre ce problème, que j'ai trouvé plus pratique, consiste à désactiver App Transport Security par défaut à l'aide de la clé NSAllowsArbitraryLoads
. Ainsi, les domaines que vous n'incluez pas dans le dictionnaire NSExceptionDomains
(ou si vous n'incluez pas du tout NSExceptionDomains
) ne seront pas soumis à App Transport Security.
Projet Xcode -> allez à info.plist et cliquez sur le bouton + puis sur Ajouter (Paramètres de sécurité du transport d'application) Développez, Autorisez les charges arbitraires, définissez YES. Merci
Je travaille dans xCode 8.2. C'est un peu différent, mais en modifiant le fichier PLIST, vous devez ajouter ces deux éléments dans la ligne App Transport Security Settings
...:
Allow Arbitrary Loads
et Allow Arbitrary Loads in Web Content
... et donnez-leur la clé YES
.
Cela a fonctionné pour moi, espérons que cela fonctionnera pour vous et désolé pour mon anglais.
@ William Kinaan a la meilleure réponse, mais il semblerait logique de bien ajouter le NSAllowsArbitraryLoads sous le domaine d'exception "localhost" ... et non au niveau supérieur de NSTransportSecurity, qui ouvre la voie domaines.