A partir de la versión 9 del sistema operativo IOS se implemento de fabrica la Política de Transporte de Seguridad que evita que una aplicación pueda hacer una petición http a una url insegura (permitiendo únicamente peticiones vía https).
Dicho comportamiento podremos observarlo con el siguiente error:
Connection failed: Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection." UserInfo={NSUnderlyingError=0x7fada0f31880 {Error Domain=kCFErrorDomainCFNetwork Code=-1022 "(null)"}, NSErrorFailingURLStringKey=MyServiceURL, NSErrorFailingURLKey=MyServiceURL, NSLocalizedDescription=The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.}
Para evitar la política de transporte de seguridad existen dos métodos a través del archivo de configuración info.plist de tu aplicación:
Método 1: Permitir acceso a cualquier url no segura (NSAllowsArbitraryLoads)
- Abrir tu archivo info.plist
- Crear un row del tipo dictionary con el nombre NSAppTransportSecurity
- Dar click a la entrada NSAppTransportSecurity y crear un row de tipo Boolean con el nombre NSAllowsArbitraryLoads y el valor YES
Debería quedar así:
Método 2: Permitir acceso a un dominio específico (NSExceptionDomains)
- Abrir tu archivo info.plist
- Crear un row del tipo dictionary con el nombre NSAppTransportSecurity
- Dar click a la entrada NSAppTransportSecurity y crear un row de tipo dictionary con el nombre NSExceptionDomains
- Dar click a la entrada NSExceptionDomains y crear un row de tipo dictionary con el nombre del dominio que vas a utilizar (ejemplo tudominio.com)
- Dar click a la entrada tudominio.com y crear un row de tipo Boolean con el nombre NSExceptionAllowsInsecureHTTPLoads y el valor YES
- Dar click nuevamente a la entrada tudominio.com y crear otro row de tipo Boolean con el nombre NSIncludesSubdomains y el valor YES
Debería quedar así:
Después de esto podrás conectarte de manera satisfactoria a la url que deseabas acceder.
0 Comments