You can use Visual Studio with the cross-platform Mobile development with C++ tools to edit, debug, and deploy iOS code to the iOS Simulator or to an iOS device. But, because of licensing restrictions, the code must be built and run remotely on a Mac. To build and run iOS apps using Visual Studio, you need to set up and configure the remote agent, vcremote, on your Mac. The remote agent handles build requests from Visual Studio and runs the app on an iOS device connected to the Mac, or in the iOS Simulator on the Mac.
- Unity development on macOS with Visual Studio Code. Published: 2017.11.27 3 minutes read. I published this article some time ago and Unity environment changed a lot. I wouldn’t recommend this path nowadays. Just download Visual Studio Community, switch default Unity IDE and enjoy very smooth integration.
- Visual Studio Code is an open source and cross-platform development tool that focuses on code editing across a variety of development scenarios, including web, mobile, and cloud development. This second edition of Visual Studio Code Distilled has been updated and expanded with two new chapters on writing apps with Python and building apps for the cloud and deployment to Azure.
Feb 22, 2017 In this blog post, you’ll learn how to create your first macOS app in C#: a Pomodoro timer to keep us productive. Getting Started with macOS. Building apps for macOS start just like any other application, with File New. Note that you’ll need to have Xamarin.Mac installed on your macOS device; building macOS apps from Visual Studio is. I read that Visual Studio now supports cross-platform development.I'm using CMake to compile for Windows and Ubuntu (using WSL) so far.However there doesn't seem to be any information on how to actually accomplish the cross-compilation using Visual Studio to target Mac OS X.Is it doable with the CMakeSettings.json?According to this article, you can choose Linux-Debug and Linux-Release as.
Note
For information on using cloud-hosted Mac services instead of a Mac, see Configure Visual Studio to connect to your cloud hosted Mac. The instructions are for building using Visual Studio Tools for Apache Cordova. To use the instructions to build using C++, substitute vcremote
for remotebuild
.
Once you have installed the tools to build using iOS, refer to this article for ways to quickly configure and update the remote agent for iOS development in Visual Studio and on your Mac.
Prerequisites
To install and use the remote agent to develop code for iOS, you must first have these prerequisites:
A Mac computer running macOS Mojave version 10.14 or later
An Apple ID
An active Apple Developer Program account
You can get a free account that allows sideloading apps to an iOS device for testing only but not for distribution.
Xcode version 10.2.1 or later
Xcode can be downloaded from the App Store.
Xcode command-line tools
To install the Xcode command-line tools, open the Terminal app on your Mac and enter the following command:
xcode-select --install
An Apple ID account configured in Xcode as a signing identity to sign apps
To see or set your signing identity in Xcode, open the Xcode menu and choose Preferences. Select Accounts and choose your Apple ID, and then choose the View Details button. See Add your Apple ID account for detailed instructions.
For detailed information on signing requirements, see What is app signing.
If you are using an iOS device for development, a provisioning Profile configured in Xcode for your device
Xcode provides automatic signing where it creates signing certificates for you as needed. For detailed information about Xcode automatic signing see automatic signing.
If you want to do manual signing, you need to create a provisioning Profile for your app. For detailed information on creating provisioning Profiles, see Create a development provisioning profile.
Node.js version 12.14.1 and npm version 6.13.4
Install version 12.14.1 of Node.js on your Mac. If you install the Node.js package, it should come with npm version 6.13.4. Other versions of Node.js and npm may not support some modules used in the remote agent
vcremote
, which can causevcremote
installation to fail. We recommend you install Node.js by using a package manager such as Node Version Manager. Avoid using the commandsudo
to install Node.js, as some modules can fail to install when usingsudo
.
Install the remote agent for iOS
When you install the Mobile development with C++ workload, Visual Studio can communicate with vcremote, a remote agent running on your Mac to transfer files, build and run your iOS app, and send debugging commands.
Before you install the remote agent, make sure you have satisfied the Prerequisites and completed the installation steps in Install cross-platform mobile development with C++.
To download and install the remote agent
Visual Studio Code For Beginners
From the Terminal app on your Mac, verify that the Node.js version currently in use is the required version 12.14.1. To verify the version, run the command:
node -v
If it's not the right version, you may need to follow the Node.js installation instructions in the prerequisites. Then, restart Node.js.
After verifying the required Node.js is in use, run this command to install vcremote under that Node.js version:
npm install -g --unsafe-perm vcremote
The global installation (-g) switch is recommended, but not required. If you don't use the global installation switch, vcremote gets installed under the current active path in the Terminal app.
During the installation,
vcremote
is installed and developer mode is activated on your Mac. Homebrew and two npm packages,vcremote-lib
andvcremote-utils
, are also installed. When installation completes, it's safe to ignore any warnings about skipped optional dependencies.Note
To install Homebrew, you must have sudo (administrator) access. If you need to install
vcremote
without sudo, you can install Homebrew manually in a usr/local location and add its bin folder to your path. For more information, see the Homebrew documentation. To manually enable developer mode, enter this command in the Terminal app:DevToolsSecurity -enable
If you update to a new version of Visual Studio, you must update to the current version of the remote agent as well. To update the remote agent, repeat the steps to download and install the remote agent.
Start the remote agent
The remote agent must be running for Visual Studio to build and run your iOS code. Visual Studio must be paired with the remote agent before it can communicate. By default, the remote agent runs in secured connection mode, which requires a PIN to pair with Visual Studio.
To start the remote agent
From the Terminal app on your Mac, enter:
vcremote
This command starts the remote agent with a default build directory of
~/vcremote
. For additional configuration options, see Configure the remote agent on the Mac.
The first time you start the agent, and every time you create a new client certificate, you are provided with the required information to configure the agent in Visual Studio, including the host name, the port, and the PIN.
If you intend to configure the remote agent in Visual Studio using the host name, ping the Mac from Windows using the host name to verify that it is reachable. Otherwise, you may need to use the IP address instead.
The generated PIN is for one time use, and is only valid for a limited time. If you do not pair Visual Studio with the remote agent before the time expires, you will need to generate a new PIN. For more information, see Generate a new security PIN.
You can use the remote agent in unsecured mode. In unsecured mode, the remote agent can be paired to Visual Studio without a PIN.
To disable secured connection mode
To disable secured connection mode in
vcremote
, enter this command in the Terminal app on your Mac:vcremote --secure false
To enable secured connection mode
To enable secured connection mode, enter this command:
Wordpress blog templates help. Beautiful, responsive, free and premium WordPress themes for your photography site, portfolio, magazine, business website, or blog. Find the perfect theme for your WordPress website. Choose from thousands of stunning designs with a wide variety of features and customization options. Creative WordPress Blog Themes. Browse over 860 WordPress blog themes to use for personal and business content. These WordPress blog theme sets keep the focus on the written word, with templates for creatives, journalists, retailers, and more. Choose from a wide variety of styles and layouts for your personal or professional blog.
vcremote --secure true
Once you have started the remote agent, you can use it from Visual Studio until you stop it.
To stop the remote agent
- In the Terminal window
vcremote
is running in, enter Control+C.
Configure the remote agent in Visual Studio
To connect to the remote agent from Visual Studio, you must specify the remote configuration in the Visual Studio options.
To configure the remote agent from Visual Studio
If the agent is not already running on your Mac, follow the steps in Start the remote agent. Your Mac must be running
vcremote
for Visual Studio to successfully pair, connect, and build your project.On your Mac, get the host name or IP address of your Mac.
You can get the IP address by using the ifconfig command in a Terminal window. Use the inet address listed under the active network interface.
On the Visual Studio menu bar, choose Tools, Options.
In the Options dialog box, expand Cross Platform, C++, iOS.
In the Host Name and Port fields, enter the values specified by the remote agent when you started it. The host name can be the DNS name or IP address of your Mac. The default port is 3030.
Note
If you cannot ping the Mac using the host name, you may need to use the IP address.
If you use the remote agent in the default secured connection mode, check the Secure checkbox, then enter the PIN value specified by the remote agent in the Pin field. If you use the remote agent in unsecured connection mode, clear the Secure checkbox and leave the Pin field blank.
Choose Pair to enable the pairing.
The pairing persists until you change the host name or port. If you change the host name or port in the Options dialog box, to undo the change, choose the Revert button to revert to the previous pairing.
If the pairing does not succeed, verify that the remote agent is running by following the steps in Start the remote agent. If too much time has passed since the remote agent PIN was generated, follow the steps in Generate a new security PIN on the Mac and then try again. If you are using the host name of your Mac, try using the IP address in the Host Name field instead.
Update the folder name in the Remote Root field to specify the folder used by the remote agent in your home (~) directory on the Mac. By default, the remote agent uses
/Users/<username>/vcremote
as the remote root.Choose OK to save the remote pairing connection settings.
Visual Studio uses the same information to connect to the remote agent on your Mac each time you use it. You do not need to pair Visual Studio with the remote agent again unless you generate a new security certificate on your Mac, or its hostname or IP address changes.
Generate a new security PIN
When you start the remote agent the first time, the generated PIN is valid for a limited amount of time—by default, 10 minutes. If you don't pair Visual Studio to the remote agent before the time expires, you will need to generate a new PIN.
To generate a new PIN
Stop the agent, or open a second Terminal app window on your Mac and use that to enter the command.
Enter this command in the Terminal app:
vcremote generateClientCert
The remote agent generates a new temporary PIN. To pair Visual Studio by using the new PIN, repeat the steps in Configure the remote agent in Visual Studio.
Generate a new server certificate
For security purposes, the server certificates that pair Visual Studio with the remote agent are tied to the IP address or host name of your Mac. If these values change, you must generate a new server certificate, and then reconfigure Visual Studio with the new values.
To generate a new server certificate
Stop the
vcremote
agent.Enter this command in the Terminal app:
vcremote resetServerCert
When prompted for confirmation, enter
Y
.Enter this command in the Terminal app:
vcremote generateClientCert
This command generates a new temporary PIN.
To pair Visual Studio by using the new PIN, repeat the steps in Configure the remote agent in Visual Studio.
Configure the remote agent on the Mac
You can configure the remote agent using various command-line options. For example, you can specify the port to listen for build requests and specify the maximum number of builds to maintain on the file system. By default, the limit is 10 builds. The remote agent will remove builds that exceed the maximum on shutdown.
To configure the remote agent
Visual Studio Code Macos Big Sur
To see a complete list of remote agent commands, in the Terminal app, enter:
vcremote --help
To disable secure mode and enable simple HTTP-based connections, enter:
vcremote --secure false
When you use this option, clear the Secure checkbox and leave the Pin field blank when configuring the agent in Visual Studio.
To specify a location for remote agent files, enter:
vcremote --serverDir directory_path
where directory_path is the location on your Mac to place log files, builds, and server certificates. By default, this location is
/Users/<username>/vcremote
. Builds are organized by build number in this location.To use a background process to capture
stdout
andstderr
to a file named server.log, enter:vcremote > server.log 2>&1 &
The server.log file can assist in troubleshooting build issues.
To run the agent by using a configuration file instead of command-line parameters, enter:
vcremote --config config_file_path
where config_file_path is the path to a configuration file in JSON format. The startup options and their values must not include dashes.
Troubleshoot the remote agent
Debugging on an iOS device
If debugging on an iOS device does not work, there could be issues with the tool ideviceinstaller, which is used to communicate with an iOS device. This tool is typically installed from Homebrew during the installation of vcremote
. Follow the steps below as a workaround.
Open the Terminal app and update ideviceinstaller
and its dependencies by running the following commands in order:
Ensure Homebrew is updated
brew update
Uninstall
libimobiledevice
andusbmuxd
brew uninstall --ignore-dependencies libimobiledevice
brew uninstall --ignore-dependencies usbmuxd
Install the latest version of
libimobiledevice
andusbmuxd
brew install --HEAD usbmuxd
brew unlink usbmuxd
brew link usbmuxd
brew install --HEAD libimobiledevice
Uninstall and reinstall
ideviceinstaller
brew uninstall ideviceinstaller
brew install ideviceinstaller
Verify that ideviceinstaller
can communicate with the device by trying to list the apps installed on the device:
ideviceinstaller -l
If ideviceinstaller
errors that it cannot access the folder /var/db/lockdown
, change the privilege on the folder with:
sudo chmod 777 /var/db/lockdown
Then verify again if ideviceinstaller
can communicate with the device.
See also
I published this article some time ago and Unity environment changed a lot. I wouldn’t recommend this path nowadays. Just download Visual Studio Community, switch default Unity IDE and enjoy very smooth integration.
First things first — I’m not an experienced game developer. I just started my journey with Unity not long time ago and this article is a result of my early explorations that can be useful for newcomers.
As a day to day front end developer I spend majority of the time in HTML, CSS and JavaScript. Jumping from one territory to a completely new environment is a fantastic experience but comes with lots of difficulties. My biggest issue on early Unity expedition wasn’t a C#, it wasn’t a convoluted interface, nor a crazy amount of 3D vector math. It was a MonoDevelop — the default IDE that Unity comes with and works smoothly out of the box. Lack of my favorite shortcuts, snippets system and absence of core functionalities that I use hundreds times a day. Visual Studio Code served me well for last few months and I couldn’t stand writing a single line of code without it. After a while it turned up that VSCode can be linked with Unity to take an advantage of all the things that it is best at. Let’s go through the whole process step by step.
Visual Studio Code and C# extension #
You can download VSCode from Microsoft website for free. Installation process is very straight forward. Out of the box it doesn’t support a language used by Unity — it can be easily solved by installing C# extension from official marketplace.
In the theory Unity works with three scripting languages — C#, JavaScript and Python-like Boo. Ditching Boo has been announced long time ago and the same thing has been recently revealed about the future of Javascript-like UnityScript. C# is the future of this platform — much nicer ecosystem, tooling support and the bright future full of powerful features that wouldn’t be possible in the other language. If you have never worked with C# you don’t have to worry — official documentation is a fantastic place to get you running.
Visual Studio Code For Macbook
Unity and it’s external script editor #
Despite the time that it takes to download, Unity set up isn’t scary. I just would like to point your attention to the step where you can choose addition components that are going to be added during the installation process. As we are aiming to use it with Visual Studio Code, you can un-check MonoDevelop from the list of add-ons.
Now you can go to the Unity settings and change your “External Script Editor” to Visual Studio Code.
Visual Studio Code For Macbook M1
Install .NET SKD #
Command Line Interface for the .NET Software Development Kit is something that we need. Download the latest version of the installer from Microsoft website and follow the installation guide.
Brew and Mono #
Mono is the last ingredient that we need to install to have a smooth integration with VSCode OmniSharp. The easiest way is to download it from Homebrew. If you don’t have it installed on your machine, you live your life wrong! Visit a website to the missing package manager for macOS and follow the installation guide. Now the only thing that you need to run is…
VSCode + Unity = <3 #
There seem to be a lot of steps but actual the whole setup takes just a few minutes. You can now enjoy smooth integration of Unity and your favourite code editor.
Hi. Things changed since I published this post. This procedure is wal less complicated now (pretty much just change the default code editor in Unity settings should do).
Nowadays I would actually use Visual Studio Community instead. This is a recommended IDE by Unity team anyway. They are moving away from MonoDevelop slowly (from Mono in general I would say).
Thanks for reading and have a nice day 🥑
I am 99% sure it is available for both Windows and macOS platforms.
Hi @luisjavierramreztorres:disqus.
To be honest with you, nowadays I wouldn't go that path. Just install Visual Studio Community and switch default editor and you are sorted. It is much easier and recommended way of working in Unity environment by Unity core team.
Thanks a lot.