2016-02-25 4 views
6

Quale impostazione devo inserire nel mio file info.plist per abilitare la modalità HTTPS? Ho già messo questo nella mia plist:Come caricare un URL HTTPS in iOS 9?

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

Ma non sta funzionando, sto ancora ricevendo questo errore

messaggio di errore: -

2016/02/25 12: 46: 31,860 Indus Audio: load [707 13224] NSURLSession/NSURLConnection HTTP fallita (kCFStreamErrorDomainSSL, -9813)

2016-02-25 14: 20: 31,119 Indus Audio [817: 23670] risposta: (null) errore di dominio = NSURLErrorDomain Code = -1202 "Il certificato per questo serv er non è valido Si potrebbe essere la connessione a un server che finge di essere “www.indusaudio.com”, che potrebbe mettere le vostre informazioni riservate a rischio ".

UserInfo = {NSURLErrorFailingURLPeerTrustErrorKey =, NSLocalizedRecoverySuggestion = Vuoi per connettersi al server in ogni caso ?, _kCFStreamErrorDomainKey = 3, _kCFStreamErrorCodeKey = -9813, NSErrorPeerCertificateChainKey = {type = immutabile, count = 1, i valori = ( 0: )}, NSUnderlyingError = 0x7f9e58e05cf0 {errore di dominio = Codice kCFErrorDomainCFNetwork = -1202 "(null)" UserInfo = {_ kCFStreamPropertySSLClientCertificateState = 0, kCFStreamPropertySSLPeerTrust =, _kCFSNetworkCropsDomainKey = 3, _kCFStreamErrorCodeKey = -9813, kCFStreamPropertySSLPeerCertificates =0: )}}},

URL: https://www.xxxxx.com/xxx/xxx/files/downloadFile/en/linto

+0

Questa domanda ha lo stesso codice di errore: http://stackoverflow.com/q/21025622/433373 –

+0

Dato il codice di errore, il server probabilmente non ha un certificato intermedio. Cosa succede se apri lo stesso URL in Safari iOS, Safari Mac o un altro browser? – jcaron

+0

in realtà ho usato per aprire questi URL tramite un'estensione si chiama client avanzato in chrome. Ci funzionerà bene e questi URL funziona perfettamente su Android –

risposta

1

UPDATE: Meglio aggiornare il server per supportare SSL e TLSv1.2

Usare questo per temporanea uso solo . Questo metodo non è assolutamente consigliabile:

<key>NSAppTransportSecurity</key> 
<dict> 
    <!--Connect to anything. Not advisable. For desperate measures I guess--> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

risposta originale:

iOS 9 supporta TLSv1.2, vedere this document. Quindi, cambiandolo in TLSv1.1, elude la sicurezza (che non è completamente consigliabile). Inoltre, specificare il url in questo modo:

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSExceptionDomains</key> 
    <dict> 
    <key>enterYourUrlHere.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> 
     <string>TLSv1.1</string> 
    </dict> 
    </dict> 
</dict> 
+0

ho già provato questi nel mio plist ma ricevendo solo lo stesso errore .. –

+0

invece di ' https: // www.xxxxx.com/xxx/xxx/files/downloadFile/it/linto', prova 'http: //www.xxxxx.com/xxx/xxx/files/downloadFile/it/linto' – Scar

+0

ho provato ma il backend non supporta http così come https –

-1

Aggiungi App Transport Security Settings nel file Info.plist e impostare Consenti carichi arbitrari elemento da YES.

+0

puoi dirmi come posso aggiungere queste informazioni nel mio plist –

+0

Puoi semplicemente aggiungere la chiave "Impostazioni di sicurezza del trasporto app" e aggiungere la chiave annidata "Permetti carichi arbitrari" quindi impostare a SÌ. – MuhammadTalhaSiddiqui

+0

Ciò consentirebbe alla tua app di connettersi a qualsiasi URL, non è un modo sicuro per fare un lavoro – MuhammadTalhaSiddiqui