Enable JetBrains Rider to work with Xamarin Remoted iOS Simulator for windows, installed with Microsoft Visual Studio.
In Rider 2020.2.4 sometimes the macro used to get the module folder doesnt work. The next EAP 2020.3 seems to fix the issue, but sometimes it also fails. So if you are using these versions and the simulator does not work... you know why :) Version v2020.2.3 works well
-
This tool has been updated to work with JetBrains Rider 2019.3+. If you need to run it on an older version, download the first version.
-
Starting from 2020.1 when you change the simulator in the Rider interface, the project model don't get immediatly updated. Since this tool relies on that model to get the current emulator this can be annoying but the solution is simple! Just save a random file in the solution (even if you didn't modified it) and the project model get updated!.
To summarize: change your selected simulator -> save a file -> click debud and the right simulator will appear :)
- Make sure to a have working, established connection to your mac with the Xamarin Mac Agent
- Edit the
Rider.RemoteSimulator.Win.exe.config
file with the connection details for your mac (host name, username and password) - Open JetBrains Rider
- Create a new External tool:
Settings --> Tools --> External tools
- In Tools Settings select the executable
Rider.RemoteSimulator.Win.exe
- In Arguments insert this:
$ModuleFileDir$
- Now in your run configuration for iOS simulator, you can add this external tool in Before Launch settings
- Debug and enjoy the Remote Simulator :)
When started, this tool execute these step:
- Read the
workspace.xml
(for current solution) to retrieve the selected simulator in your run configuration - Connects to your mac host with the settings provided in
Rider.RemoteSimulator.Win.exe.config
- Retrieve the simulators list from xcode to get the right UDID for the selected simulator
- Launch the Windows Remote Simulator from command line, passing the right UDID
- Why an external tool and not a plugin?
Well... currently i dont have time to learn how to develop a plugin for Rider, so i made a simple console application to use as an external tool :)
- Whaaat??? A plain password in the .config file?
Yeah, i know... i know... But see the previous FAQ: i dont have much time right now so i had to do things super-fast. If you dont like this auth method, a pull request will be super-welcome!