title: How to debug a Xamarin.iOS app on a physical iOS device
body: <p>Apologies, in advance, for this long question, but I have wasted 3 days unsuccessfully trying to set up a Xamarin.iOS development environment that allows me to debug on a physical device (not an iPhone simulator) and I am at a loss for what to try next.</p>
  
  <p>I believe my setup is quite a standard Xamarin configuration:</p>
  
  <ul>
  <li>Windows 10 PC running Visual Studio 2015 and Xamarin v4.2.0.703</li>
  <li>HTC phone USB-connected to the PC for Android debugging (works fine)</li>
  <li>MacBook running OS X 10.11 with Xamarin Studio v6.1.1 and Xcode v8.0</li>
  <li>iPhone or iPad USB-connected to the Mac for iOS debugging</li>
  </ul>
  
  <p>I started by creating a Xamarin solution in Visual Studio, which I initially developed and debugged on Android.</p>
  
  <p>To progress to iOS debugging I then set up the Mac with Xcode and Xamarin Studio, enabled it for remote login, and created a dummy Xcode project with the same bundle identifier as my Xamarin.iOS app. I also made an attempt at the rather complicated process of creating a signing identity and provisioning profile for the app, and downloading / installing them on the Mac. This process is so unintuitive (and the visual feedback within Xcode is so poor) that I am not certain that I have done it correctly. However, I am able to run the dummy Xcode project on the iPhone, so I assume it must be OK?</p>
  
  <p>On the Windows PC, the <strong>Xamarin</strong> > <strong>iOS Options</strong> pane within Visual Studio settings confirms that Visual Studio is connected to the Mac and the attached iPhone is also listed as a candidate target device, so it seems that everything is set up for on-device debugging.</p>
  
  <p>If I try to debug the app on the iPhone simulator from Visual Studio, it works correctly. However, debugging on the physical iPhone fails with the following unhelpful message:</p>
  
  <pre><code>Xamarin.Messaging.Exceptions.MonotouchException: error MT1006: Could not install the
  application '/Users/Tim/Library/Caches/Xamarin/mtbs/builds/Test.iOS/c4f40041b6c58fc579a727bccfc18614/bin/iPhoneSimulator/Debug/TestiOS.app' 
  on the device 'Tim’s iPhone': AMDeviceSecureInstallApplicationBundle returned: 0xe8008001.
  </code></pre>
  
  <p>As a comparison, I also tried debugging directly on the Mac, using Xamarin Studio. Again, the iPhone simulator works OK, but it is impossible to even launch a debug session using the physical device, because the connected iPhone is not listed as a candidate target device for the <strong>Debug | iPhone</strong> configuration.</p>
  
  <p>If I open project options and navigate to the <strong>iOS Debug</strong> view, I can see that the platform associated with the <strong>Debug</strong> configuration is <strong>iPhoneSimulator</strong>. Changing it to <strong>iPhone</strong> and saving the configuration it appears work, but the changes are not actually saved. I guess this is the reason my test device is not listed, but I am unclear what I need to do to get Xamarin Studio to accept my changes.</p>
  
  <p>So, after all this experimentation, I am completely lost. It would be helpful to have a complete, robust A-Z tutorial for this setup process but, failing that, any suggestions what I should try next would be very much appreciated.</p>
  
  <p>UPDATE: If I use the <strong>Ad-Hoc</strong> project configuration (in either Visual Studio or Xamarin Studio) it correctly deploys and launches the app on the device, but doesn't attach the debugger. If I explicitly enable debugging in the Ad-Hoc project configuration, Xamarin Studio ignores it, but Visual Studio then attaches the debugger but doesn't hit any breakpoints. Does this all sound right? Does it offer any clues what I need to change to get the real <strong>Debug</strong> config to work correctly?</p>