Content Security Policy en iOS con ionic
January 29, 2016
Content Security Policy en iOS con ionic
Desde la salida de cordova 5.0, el trabajo conectándose a URLs externas es todo un fastidio, sugieren bajar el plugin de whitelist y configurarlo como se sugiere en el readme.md, pero vaya sorpresa, a mi no me funcionó.
En primera instancia voy a mencionar varios asuntos importantes que pueden salvarle la vida o no a un desarrollador con este problema.
En el documentroot de nuestro proyecto ionic se encuentran varios archivos importantes, entre ellos la carpeta www y el archivo config.xml.
Cada plataforma tiene su copia local de estos archivos y NO SE COPIAN AUTOMÁTICAMENTE en cada compilación.
Esto que quiere decir, que los cambios los debemos realizar en el archivo local de cada plataforma para ver resultados cuando se compile. O usar un script que copie las últimas versiones de los archivos en el documentroot.
Con esto en mente, efectuar los cambios pertinentes en el archivo local config.xml de cada plataforma y recompilar podría solucionar problemas.
Pero no, específicamente con iOS tuve que meter un poco de machete :D
Estas líneas me salvaron la vida, y pueden hacerlo contigo.
En el archivo {{DOCUMENT_ROOT}}/platforms/ios/{{PROJECT_NAME}}/Resources/{{PROJECT_NAME}}-Info.plist
añadí la siguiente regla
<key>NSAppTransportSecurity</key>
<dict>
<!--Include to allow all connections (DANGER)-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Bueno, no precisamente esa regla, pero inicialmente solucionó mis problemas.
La solución la encontré en este post y ahí hay un ejemplo más claro de como ingresar dominios mas específicos.