General, hack, IOS, Programacion, software, Swift, Tecnologia en General

The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

Como cada año (a veces antes) Apple anuncio su nueva actualización de software, para los usuarios IOS 9 y bueno eso trae como consecuencia actualizaciones para su lenguaje de programación Swift, El fin de semana se me actualizo XCode a la versión 7 y bueno si abres tus proyectos que habían estado funcionando perfectamente te darás cuenta que tal vez algunas cosas ya no funcionen y ahora te mande warnings o de plano errores que hay que corregir.

Por fortuna el “migrador” de XCode te ayudara a corregir mucho de esto pero además los que aun se mantengan con error traen buenas sugerencias para su corrección y pues básicamente dependiendo del tamaño del proyecto no te restara mas que perder un par de horas en estar actualizando código.

Una vez terminado con los errores sintácticos podrás compilar y correr tu aplicación, pero oh sorpresa, si tu aplicación hace conexiones a un servidor que no tiene certificado SSL te va a dar el error que puse en el titulo del post y sin mas explicación va a salir abruptamente de la App.

Error en el debug

Detalle en debug

Normalmente no tengo el tiempo (ni el interés) de estar checando las betas de IOS o del SDK así que cuando llega la actualización final siempre ocurre que debo corregir estos errores al momento pero este particularmente me tomo mas tiempo por que es un error en tiempo de ejecución y no te dice mas información mas que ya no permite conexiones inseguras…

El objetivo de esto es incrementar la seguridad en las Apps forzándonos a solo mandar peticiones a servidores seguros algo así como cuando pagas con tarjeta de crédito.

Bueno pues hoy les voy a mostrar como fue que solucione este problema de la manera mas “exprés” posible, deben entender que lejos de ser la solución es solo un pequeño truco para poder subir actualización con las nuevas restricciones en lo que instalan certificado SSL en su servidor que en teoría es la respuesta correcta ya saben por cuestiones de seguridad…

Comenzamos abriendo el archivo Info.plist y en la parte final del archivo vamos a agregar estas directivas. Probablemente les muestre el archivo Info.plist como una lista de los parámetros para no tener que escribir el XML, en este caso si es necesario ver el XML y lo hacemos de la siguiente manera, le dan clic derecho a el archivo y van a ir a la opción de “open as” y van a elegir la opción de “source code” de esta forma podrán ver el código XML y agregar la siguiente directiva.

Haciendo visible el xml del Info.plist

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

Guardamos y después de esto ahora si ya podremos hacer peticiones a conexiones inseguras.

Asi se debe ver

Listo con esta pequeña directiva estamos permitiendo conexiones “inseguras” y tendremos un poco mas de tiempo para poder adentrarnos en el mundo de los certificados SSL algo que les recomendaría mucho ya que conociendo lo arbitrarios que son los de Apple no tardaran en deshabilitar esta opción y ahora si solo permitir conexiones “seguras”.

Nuestra App recibe datos

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s