web-dev-qa-db-fra.com

App Transport Security a bloqué une ressource HTTP en texte clair

 enter image description here

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é. 

10
Narek Simonyan

Vous devez le corriger comme ceci:

 enter image description here

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.

25
William Kinaan

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.

 enter image description here

6
strwils

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 vois une mauvaise clé et une faute de frappe dans votre capture d'écran. Voici un exemple de travail:

 screen

4
rshev

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. 

 enter image description here

 enter image description here

1
figo_albarra

@ 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.

0
J.Doe