2015-09-24 4 views
10

enter image description hereApp Transport Security ha bloccato una risorsa HTTP in chiaro

Sto usando biblioteca Socket.IO in veloce e continuo a ricevere questo errore:

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

quando sto cercando di inviare una richiesta HTTP. Ho aggiunto le chiavi per plistare secondo la documentazione ufficiale di Apple, ma non è stato d'aiuto.

+0

possibile duplicato di [Sicurezza Trasporti ha bloccato un HTTP in chiaro] (http://stackoverflow.com/questions/31254725/transport-security-has-blocked-a-cleartext- http) – brainray

+0

@ william-kinaan Si prega di non aggiungere tag irrilevanti alle domande. Questa domanda non è correlata a Swift ma a iOS. Grazie. – Moritz

risposta

24

È necessario correggere in questo modo:

enter image description here

Per facilitare, questo è il codice XML corretto nel 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> 

cambia il localhost sul server attuale

Check the table for NSAppTransportSecurity options

Se volete tutte le comunicazioni con qualsiasi dominio, si può fare questo:

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

Tuttavia, è necessario utilizzare l'ultima proprio nella fase di sviluppo.

+0

Ho fatto esattamente la stessa cosa e ora sto ottenendo questo: App Transport Security ha bloccato un cleartext HTTP (http: //) carico di risorse poiché non è sicuro. Le eccezioni temporanee possono essere configurate tramite il file Info.plist dell'app. Per favore aiuto .. –

+0

Sono completamente nuovo in XCode. Ho 7.3 quindi vedo gli stessi nomi delle variabili ** tranne ** che non hanno * NS * nei nomi. Quindi questa soluzione ha funzionato per me! – ebichuhamster

4

Vedo una chiave errata e un errore di battitura nel tuo screenshot. Ecco un esempio di lavoro:

screen

+0

Grazie per questa correzione! Non è stato possibile scaricare le informazioni del profilo di Facebook dal dominio graph.facebook.com finché non ho aggiunto l'eccezione NSExceptionAllowsInsecureHTTPLoads. Funziona come previsto ora. Saluti! –

6

Un altro modo per risolvere questo problema, che ho trovato più conveniente, è disattivare la sicurezza del trasporto app per impostazione predefinita utilizzando la chiave NSAllowsArbitraryLoads. Pertanto, qualsiasi dominio che non includi nel dizionario NSExceptionDomains (o se non includi affatto NSExceptionDomains) non sarà soggetto alla sicurezza del trasporto delle app.

enter image description here

+0

Ognuno ha dato la stessa risposta tranne questa, l'unica che ha funzionato! Grazie :) – emotality

+0

Ho XCode 7.1.1 e non riesco a trovare questa opzione – tccpg288

4

progetto Xcode -> vai al info.plist e fare clic su + Button poi Aggiungi (App Impostazioni Transport Security) Espandi, Consenti Carichi arbitrarie Impostare YES. Grazie

1

Sto lavorando in xCode 8.2. E 'un po' diverso, ma modificando il file PLIST è necessario aggiungere questi due elementi nella App Transport Security Settings linea ...:

Allow Arbitrary Loads e Allow Arbitrary Loads in Web Content ... e dare loro sia la chiave YES.

Ha funzionato per me, spero che questo lavoro per voi e mi dispiace per il mio inglese.

enter image description here

enter image description here