Search code examples
ios9xcode7

Is it possible to disable ATS in iOS 9 just for debug environment?


I'm working on a development environment without HTTPS setup. Is it possible to automatically disable ATS just for the development (debug) mode?


Solution

  • My solution is to keep ATS disable option at the default NO value and add a New Run Script Phase to change it in the app bundle's Info.plist when building the app.

    enter image description here

    This is the script:

    #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