Windows 10 Mac Emulator For Visual Studio 2017

-->

Xamarin for Windows allows iOS applications to be written and tested within Visual Studio, with a networked Mac providing the build and deployment service.

This article covers the steps to install and configure the Xamarin.iOS tools on each computer to build iOS applications using Visual Studio.

From the point of view of C# development, Xamarin is certainly the. You will use emulators to run the iOS, Android, and Windows 10 versions of. Forms solution, you need Visual Studio 2017 on Windows or Visual Studio for Mac on macOS. Visual Studio 2017/2019 for Windows or Visual Studio for Mac. If you are running on a Mac, you can target either iOS or Android emulators.

Developing for iOS inside Visual Studio provides a number of benefits:

  • Creation of cross-platform solutions for iOS, Android and Windows applications.
  • Using your favorite Visual Studio tools (such as Resharper and Team Foundation Server) for all yourcross-platform projects, including iOS source code.
  • Work with a familiar IDE, while taking advantage of Xamarin.iOS bindings of all Apple’s APIs.

Requirements and Installation

There are a few requirements that must be adhered to when developing for iOS in Visual Studio. As briefly mentioned in the overview, a Mac is required to compile IPA files, and applications cannot be deployed to a device without Apple’s certificates and code-signing tools.

There are a number of configuration options available, so you can decide which works best for your development needs. These are listed below:

  • Use a Mac as your main development machine and run a Windows virtual machine with Visual Studio installed. We recommend usingVM software such as Parallels or VMWare .
  • Use a Mac just as a build host. In this scenario it would be connected to the same network as a Windows machine withthe necessary tools installed.

In either case, you should follow these steps:

Connecting to the Mac

To connect Visual Studio to your Mac build host, follow the instructionsin the Pair to Macguide.

Visual Studio Toolbar Overview

Xamarin iOS for Visual Studio adds items to the Standard toolbar and to the new iOS toolbar.The functions of these toolbars are explained below.

Standard Toolbar

The controls relevant to Xamarin iOS development are circled in red:

  • Start - Starts debugging or running the application on the selected platform. There must be a connected Mac (see the status indicator in the iOS toolbar).
  • Solution Configurations – Allows you to select the configuration to use (e.g., Debug, Release).
  • Solution Platforms - Allows you to select iPhone or iPhoneSimulator for deployment.

iOS Toolbar

The iOS Toolbar in Visual Studio looks similar in each version of Visual Studio. These are all shown below:

Each item is explained below:

  • Mac Agent/Connection Manager – Displays the Xamarin Mac Agent dialog box. This icon will appear orange when connecting, and green when connected.
  • Show iOS Simulator – Brings the iOS Simulator window to the front on the Mac.
  • Show IPA File on Build Server – Opens Finder on the Mac to the location of the application’s IPA output file.

iOS Output Options

Output Window

There are options in the Output pane that you can view to discover build, deployment, and connection messages and errors.

The screenshot below shows the available output windows, which may differ depending on your project type:

  • Xamarin – This contains information relating solely to Xamarin, such as the connection to the Mac and activation status.

  • Xamarin Diagnostics – This shows more detailed information about your Xamarin project, such as the interaction with and for Android.

Other default Visual Studio Output panes like Debug and Build are still available inside the Output view and are used for Debugging Output and MSBuild Output:

  • Debug

  • Build & Build Order

iOS Project Properties

Visual Studio’s Project Properties can be accessed by right-clicking on the Project name and selecting Properties in the context menu. This will let you configure your iOS application, as shown in the screenshot below: John deere 301 spec.

  • iOS Bundle Signing – connects to the Mac to populate the code signing identities and provisioning profiles:

  • iOS IPA Options – the IPA file will be saved on the Mac’s file system:

  • iOS Run Options – Configure additional parameters:

Creating a New Project for iOS Applications

Creating a new iOS project from within Visual Studio is done just like any other project type. Selecting File > New Project will open the dialog shown below, illustrating some of the project types available for creating a new iOS project:

Selecting iOS App (Xamarin) will show the following templates for creating a new Xamarin.iOS application:

Storyboard and .xib files can be edited in Visual Studio using the iOS Designer. To create a Storyboard, choose the one of the Storyboard templates. This will generate a Main.storyboard file in the Solution Explorer as illustrated by the screenshot below:

To start creating or editing your Storyboard, double-click on Main.storyboard to open it in the iOS Designer:

To add objects to your view, use the Toolbox pane to drag and drop items onto your Design Surface. The Toolbox can be added by selecting View > Toolbox, if not already added. Object properties can be modified, their layouts adjusted, and events can be created by using the Properties pane, as illustrated below:

For more information on using the iOS designer, refer to the Designer guides.

Running & Debugging iOS Applications

Device Logging

In Visual Studio 2017, the Android and iOS log pads are unified.

The new Device Log tool window for Visual Studio allows to show logs for Android and iOS devices. It can be shown by executing any of the following commands:

  • View > Other Windows > Device Log
  • Tools > iOS > Device Log
  • iOS toolbar > Device Log

Once the tool window is shown, the user can select the physical device from the devices dropdown. When a device is selected, logs will automatically be added to the table. Switching between devices will stop and start the device logging.

In order for the devices to appear in the combobox, an iOS project must be loaded. Additionally for iOS, Visual Studio must be connected to the Mac Server to discover the iOS devices connected to the Mac.

This tool window provides: a table of log entries, a dropdown for device selection, a way to clear log entries, a search box, and play/stop/pause buttons.

Set Debugging Stops

Breakpoints can be set at any point in your application to signal to the debugger to temporarily stop the execution of the program. To set a breakpoint in your Visual Studio, click on the margin area of your editor, next to the line number of the code you wish to break at:

Start debugging, and use the simulator or device to navigate your application to a breakpoint. When a breakpoint is hit, the line will be highlighted and Visual Studio’s normal debugging behavior will be enabled: you can step into, over, or out of the code, examine local variables, or use the Immediate Window.

This screenshot shows the iOS Simulator running next to Visual Studio using Parallels on macOS:

Examine Local Variables

Summary

This article described how to use Xamarin iOS for Visual Studio. It listed the various features available for creating,building, and testing an iOS app from within Visual Studio and walked through building and debugging a simple iOS application.

Related Links

August 24, 2016 by Kenneth Auchenberg

Update

The iOS Web debugger has been deprecated and we now recommend that you use the RemoteDebug iOS WebKit Adapter together with Visual Studio Code. To learn more, see this introductory guide to the RemoteDebug iOS WebKit Adapter.

Introduction

Debugging websites running on iOS devices is accessible only to a subset of developers. For example, using the Safari Web Inspector (Safari DevTools) requires an instance of desktop Safari which only is available for macOS users. Today, we’re enabling mobile web developers to debug JavaScript running on their iOS devices directly from their editor with a new iOS Web Debugger for Visual Studio Code. This debug extension works on both Mac and Windows.

Our new iOS Web Debugger works quite similar to our Chrome debugger which we introduced back in February. Under the hood, it’s the same debugger running inside VS Code, which is powered by our open-source vscode-chrome-debug-core library. To make the connection from our debugging library to the iOS device, we are leveraging two open-source projects, ios-webkit-debug-proxy and ios-webkit-debug-proxy-win32, that enables communication with the iOS devices over USB through the WebKit Remote Debugging Protocol. The protocol is compatible with the Chrome Debugging Protocol for the script debugging APIs, and this means our debugger works without additional mapping logic.

Enabling easy local development through emulated port forwarding

When developing websites running locally, it’s a cumbersome process to enable mobile devices access your local development server, which usually is a HTTP server running on localhost. To make this easier, platforms like Android supports port-forwarding natively, but iOS doesn’t support this.

So we found a way to emulate port forwarding by adding the option to start an instance of localtunnel, that behind the scenes creates HTTP tunnel from your local computer to the public internet for the specified tunnelPort property. This HTTP tunnel is then used by the iOS device to get access to your local development server, just as any other public website.

Getting started

To get started, open the Extensions view (⇧⌘X (Windows, Linux Ctrl+Shift+X)). When the extension list appears, type 'ios' to filter the list and install the Debugger for iOS Web extension. You'll then create a launch-configuration file which we explain in detail in our README right here.

Supported features

In this release, we support the following features:

  • Setting breakpoints, including in source files when source maps are enabled
  • Stepping
  • Stack traces
  • The Locals pane
  • Debugging eval scripts, script tags, and scripts that are added dynamically
  • Watches
  • Console
  • Virtual port forwarding via HTTP tunnel from local computer.

Experimenting out in the open

Our new iOS Web Debugger is a public experiment and this means we are releasing it to the public to find out if integrated script debugging for iOS are valuable for developers, so please let us know what you think.

If you have any issues or ideas for improvements, feel free to reach out to us on Twitter or on GitHub.

Kenneth Auchenberg, Program Manager, JavaScript Diagnostics