Xcode Debugging – Failed to get the task for process

Recently after our yearly provisioning profile updates we do for a client I wanted to run a quick debug version on a iDevice to make sure everything was still functioning. I connected the device and pushed the App to the device via Xcode. The device started up the App but Xcode returned:

Failed to get the task for process

The App continued to run on the device I just couldn’t hit any breakpoints as I used the App on the device. A quick search turned up something interesting, it seems in my haste I had assigned my newly renewed Ad-Hoc profile to my debug build settings. After changing the debug profile to use my Development certificate everything was working fine again.

Source: Stack Overflow

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

A new version of iOS always brings new changes. This one was encountered while doing our yearly Ad-Hoc Distribution Profile renewal. An App that hasn’t been changed in a while suddenly no longer wants to make web requests. Nothing is seen on the iDevice except for a blank table. Debugging in XCode we get the following error message:

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

The permenant fix is to add an SSL certificate to your HTTP endpoint and make sure all requests are HTTPS but this being a client environment I couldn’t wait for them to do so and just needed to implement the work-around as follows:

  1. Open your projects [ProjectName]-info.plist file
  2. Add a new key called NSAppTransportSecurity as a Dictionary
  3. Add a sub-key called NSAllowsArbitraryLoads as Boolean and set its value to YES (see image below)


Now just build and you are set!

Note: this is a blanket exemption but you can also further configure as mentioned here (How do I load an HTTP URL with App Transport Security enabled in iOS 9?)

Setup an Application Pool so that it is always running and preloaded with Application Initialization

This works in IIS version 7/7.5 and is a native install (through features) for IIS 8+. Once setup your Application Pool will automatically restart after recycling and compile your .NET website so the first visitor does not have to sit through compilation.

Configure the IIS Application Initialization module

NOTE: Configuration Editor is found by clicking on the Server node in IIS under the Management in the Features View.

Configuration Editor Location

Auto redirect to HTTPS and add the Strict-Transport-Security header

A simple piece of code that can be added to your web.config that in IIS 7+ with URL Rewrite installed will redirect any HTTP request to HTTPS and when HTTPS add the Strict-Transport-Security header to keep future requests HTTPS.

                <clear />
                <rule name="Redirect to https" stopProcessing="true">
                    <match url="(.*)" />
                        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
                <rule name="Add Strict-Transport-Security when HTTPS" enabled="true">
                    <match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" />
                        <add input="{HTTPS}" pattern="on" ignoreCase="true" />
                    <action type="Rewrite" value="max-age=31536000" />