While Visual Studio Code is the best IDE for sure but it is really difficult and tiring to try without guide. Here is how to setup Visual Studio Code on Mac for debugging Arduino, WordPress etc common things for the iTerm2 + ZSH + Homebrew Users. Visual Studio Code is the first code editor, and first cross-platform development tool - supporting OSX, Linux, and Windows - in the Visual Studio family. At its heart, Visual Studio Code features a powerful, fast code editor great for day-to-day use.
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.
I believe my setup is quite a standard Xamarin configuration:
- Windows 10 PC running Visual Studio 2015 and Xamarin v4.2.0.703
- HTC phone USB-connected to the PC for Android debugging (works fine)
- MacBook running OS X 10.11 with Xamarin Studio v6.1.1 and Xcode v8.0
- iPhone or iPad USB-connected to the Mac for iOS debugging
I started by creating a Xamarin solution in Visual Studio, which I initially developed and debugged on Android.
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?
On the Windows PC, the Xamarin >iOS Options 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.
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:

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 Debug | iPhone configuration.
If I open project options and navigate to the iOS Debug view, I can see that the platform associated with the Debug configuration is iPhoneSimulator. Changing it to iPhone 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.
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.
UPDATE: If I use the Ad-Hoc 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 Debug config to work correctly?
1 Answer
For anyone facing a similar problem, the solution that I eventually adopted entailed a 'brute force' approach.
I started by creating a new Xamarin.Forms solution (using the standard Visual Studio template) and removing the unwanted platform projects (UWP and Windows Phone). In this initial state, I verified that it was able to launch debugging on both Android and iOS devices, as well as their respective emulators/simulators. Everything worked correctly, confirming that my Mac setup was correct and also providing me with the exact iOS project configuration that is required for debugging.
At this point, I assumed that a configuration problem must be responsible for my earlier problems, so I exactly replicated every detail of the working configuration in my original solution. Still it refused to debug on iOS.
I then started to suspect that a referenced Nuget package was causing the problem, so I added all of the referenced packages from the original implementation into the new test solution. I expected this to break debugging on iOS, but it didn't.
Finally, I carefully transplanted the entire contents of my original solution (XAML & code-behind files, view models, resources, etc) into the test solution and it continued to debug correctly.

So, in the absence of a viable diagnostic procedure, I effectively solved the problem by rebuilding my solution from the ground up. No code was changed and, to my knowledge, no configuration settings were changed, but the new implementation is now reliably debuggable in all target environments.
Tim CoulterTim Coulter
Microsoft Visual Studio For Mac
Not the answer you're looking for? Browse other questions tagged visual-studioxamarinxamarin.iosxamarin-studioios-provisioning or ask your own question.
Since it was released a little more than a year ago, Visual Studio 2017 for Mac has grown from being an IDE primarily focused on mobile application development using Xamarin to one that includes support for all major .NET cross-platform workloads including Xamarin, Unity, and .NET Core. Our aspiration with Visual Studio for Mac is to bring the Visual Studio experiences that developers have come to know and love on Windows to the MacOS and to provide an excellent IDE experience for all .NET cross-platform developers.
Over the past year, we added several new capabilities to Visual Studio for Mac including .NET Core 2; richer language services for editing JavaScript, TypeScript, and Razor pages; Azure Functions; and the ability to deploy and debug .NET Core apps inside Docker containers. At the same time, we have continued to improve Xamarin mobile development inside Visual Studio for Mac by adding same-day support for the latest iOS and Android SDKs, improving the visual designers and streamlining the emulator and SDK acquisition experiences. And we have updated the Unity game development experience to reduce launch times of Visual Studio for Mac when working together with the Unity IDE. Finally, we have been investing heavily in fundamentals such as customer feedback via the Report-a-Problem tool, accessibility improvements, and more regular updates of components that we share with the broader .NET ecosystem such as the .NET compiler service (“Roslyn”), and the .NET Core SDKs. We believe that these changes will allow us to significantly accelerate delivery of new experiences in the near future.
While we will continue to make improvements to Visual Studio 2017 for Mac into early next year, we also want to start talking about what’s next: Visual Studio 2019 for Mac. Today, we are publishing a roadmap for Visual Studio for Mac, and in this blog post, I wanted to write about some of the major themes of feedback we are hearing and our plans to address them as described in our roadmap.
Improving the performance and reliability of the code editor
Improving the typing performance and reliability is our single biggest focus area for Visual Studio 2019 for Mac. We plan to replace most of the internals of the Visual Studio for Mac editor with those from Visual Studio. Combined with the work to improve our integration of various language services, our aspiration is to bring similar levels of editor productivity from Visual Studio to Visual Studio for Mac. Finally, as a result of this work, we will also be able to address a top request from users to add Right-To-Left (RTL) support to our editor.
Supporting Team Foundation Version Control
Including support for Team Foundation Server, with both Team Foundation Version Control (TFVC) and Git as the source control mechanisms, has been one of the top requested experiences on the Mac. While we currently have an extension available for Visual Studio 2017 for Mac that adds support for TFVC, we will integrate it into the core of the source control experience in Visual Studio 2019 for Mac.
Increased productivity when working with your projects
The C# editor in Visual Studio for Mac will be built on top of the same Roslyn backend used by Visual Studio on Windows and will see continuous improvements. In Visual Studio 2017 for Mac (version 7.7), we will enable the Roslyn-powered brace completion and indentation engine which helps improve your efficiency and productivity while writing C# code. We’re also making our quick fixes and code action more discoverable by introducing a light-bulb experience. With the light bulb, you’ll see recommendations highlighted inline in the editor as you code, with quick keyboard actions to preview and apply the recommendations. In the Visual Studio 2019 for Mac release, we’ll also dramatically reduce the time it takes you to connect to your source code and begin working with it in the product, by introducing a streamlined “open from version control” dialog with a brand-new Git-focused workflow.
.NET Core and ASP.NET Core support
In future updates to Visual Studio 2017 for Mac, we will add support for .NET Core 2.2. We will add the ability to publish ASP.NET Core projects to a folder. We will also add support for Azure Functions 2.0, as well as update the New Functions Project dialog to support updating to the latest version of Azure Functions tooling and templates. In Visual Studio 2019 for Mac, we will add support for .NET Core 3.0 when it becomes available in 2019. We will add more ASP.NET Core templates and template options to Visual Studio for Mac and improve the Azure publishing options. Finally, building upon the code editor changes described above, we will improve all our language services supporting ASP.NET Core development including Razor, JavaScript and TypeScript.
Xamarin support
In addition to continuing to make improvements to the Xamarin platform itself, we will focus on improving Android build performance and improving the reliability of deploying iOS and Android apps. We will make it easy to acquire the Android emulators from within the Visual Studio for Mac IDE. Finally, we aim to make further improvements in the Xamarin.Forms Previewer and the Xamarin.Android Designer as well as the XAML language service for Xamarin Forms.
Unity support
We continue to invest in improving the experience of game developers using Unity to write and debug cross platform games as well as 2D and 3D content using Visual Studio for Mac. Unity now supports a .NET 4.7 and .NET Standard 2.0 profile, and we’re making sure that Visual Studio for Mac works out of the box to support those scenarios. Unity 2018.3 ships with Roslyn, the same C# compiler that is used with Visual Studio for Mac, and we’re enabling this for your IDE. In addition to this, we’ll be bringing our fine-tuned Unity debugger from the Visual Studio Tools for Unity to Visual Studio for Mac for a more reliable and faster Unity debugging experience.
Help us shape Visual Studio 2019 for Mac!
By supporting installation of both versions of the product side-by-side, we’ll make it easy for you to try out the Visual Studio 2019 for Mac preview releases while we are still also working on the stable Visual Studio 2017 for Mac releases in parallel.
Visual Studio Code Attach Debugger
We don’t have preview bits to share with you just yet, but we wanted to share our plans early so you can help us shape the product with your feedback that you can share through our Developer Community website. We will update our roadmap for Visual Studio for Mac once a quarter to reflect any significant changes. We will also post an update to our roadmap for Visual Studio soon.