ios9 xcode7

ios9 - ¿Es posible deshabilitar ATS en iOS 9 solo para el entorno de depuración?



xcode7 (3)

Mi solución es mantener la opción de desactivación de ATS en el valor NO predeterminado y agregar una Nueva Fase de Script de Ejecución para cambiarla en la lista de información del paquete de aplicaciones al crear la aplicación.

Este es el guión:

#Disables ATS in debug builds. INFOPLIST="${TARGET_BUILD_DIR}"/"${INFOPLIST_PATH}" case "${CONFIGURATION}" in "Release"|"Adhoc") /usr/libexec/PlistBuddy -c "Set :NSAppTransportSecurity:NSAllowsArbitraryLoads NO" "${INFOPLIST}" ;; "Debug") /usr/libexec/PlistBuddy -c "Set :NSAppTransportSecurity:NSAllowsArbitraryLoads YES" "${INFOPLIST}" ;; esac

Estoy trabajando en un entorno de desarrollo sin configuración HTTPS. ¿Es posible deshabilitar automáticamente ATS solo para el modo de desarrollo (depuración)?


Otra solución. Al usar INFOPLIST_PREPROCESS = YES y INFOPLIST_PREPROCESSOR_DEFINITIONS = DEBUG=1 ,

puede ser preprocesamiento condicional como código C usando #ifdef o #if directamente en Info.plist.

<key>UIMainStoryboardFile</key> <string>Main</string> #if DEBUG <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> #endif <key>UIRequiredDeviceCapabilities</key> <array>

Contras: no se puede abrir el editor de la lista de propiedades de Xcode porque no está bien formado XML :(


Sí, puede configurar los ajustes de su proyecto para usar un archivo Info.plist diferente para Debug, Release o cualquier configuración que use en su proyecto (similar a la forma en que se configuran los perfiles de provisión), por lo que en su lista de debug puede deshabilitar el ATS por completo.

Vaya a Proyecto -> Su destino -> Configuraciones de compilación -> Archivo Info.plist