Complete guide to running macOS (currently Catalina) with Xcode on Windows with VMware
Before following anything in this guide, please be aware that you may be violating the Terms of Service, License, and/or EULA for Apple and VMware. You will be running Apple software on non Apple hardware and modifying VMware software. You are responsible for reading and accepting any Terms of Service or License agreements that accompany any software you download or install.
Many parts of this guide are taken from a great write-up at Techsviewer. I needed to add a few tweaks and make sure it stays current to serve the intended purpose.
This guide is designed to show you how to run the latest version of macOS (currently Catalina ) on a Windows PC (in this guide, PC includes desktop, laptop, etc.) with VMware Workstation Player (free product). VMware is a virtualization platform that allows you to run multiple operating systems on a single computer. We will be modifying VMware to add the feature to run macOS on Windows. I’ll also cover settings required to get Xcode working. If you want a FULLY functional Mac, I will point you to some resources to cover this, but that goes beyond the intent of this guide. This guide is for somewhat modern (not ancient) Intel computers. It likely will not work for AMD processors.
If you have a high end modern Windows PC, this setup will run pretty well. If you have an older PC, it will likely still work, but a bit slower. My purpose for doing this is to build a particular application for a personal iPhone a couple of times a year. The minimum requirements for your PC are listed here: https://www.vmware.com/products/player/faqs.html
They are currently:
A 1 GHz or faster 64-bit processor and 2GB RAM is the minimum required, however a 2GHz CPU and 4GB RAM or more is recommended for running multiple virtual machines. You must have enough memory to run the 64-bit host operating system, plus the memory required for each guest operating system and for applications on the host and guest. See your guest operating system and application documentation for their memory requirements. VMware Player requires approximately 150MB of disk space to install the application. For more details on minimum PC requirements, see the VMware Player Documentation.
It is critical you follow every step in this guide. If you don’t, it will not work. If you don’t get the expected result, you must stop and figure out why. If you proceed anyway, it will not work.
Download all of these files:
1) For Catalina (10.15) macOS, use this VMware disk image:
***If you still want to use Mojave, you can use this disk image:
2) VMware Unlock/Patch tool: https://github.com/BDisp/unlocker/archive/3.0.3.zip
3) VMware Workstation Player for Windows (currently 16.X): https://www.vmware.com/go/getplayer-win
Step 1: Extract the macOS (10.15) VMware disk image file
Browse to where you save this file, and extract it with the Windows Utility.
Step 2: Install VMware Workstation for Windows
Step 3: Patch VMware
This is a crucial step. It is frequently overlooked. If it is not completed successfully, you will not be able to proceed. Extract the previously downloaded “VMware Unlock/Patch tool”. Right click “win-install.cmd” and select Run as Administrator. Pay attention to any output you see on your screen. This must be run successfully.
Step 4: Create Virtual Machine
Open the installed VMware player and click on “create a new virtual machine”.
The new virtual machine wizard will be opened. Choose to install the operating system later from the options and click on “Next”. In the next page, choose the Guest operating system which in this case is Apple Mac OS X and then Version macOS 10.15 (10.15 for Catalina, 10.14 for Mojave). Click on the “Next” button.
In the next screen, name the virtual machine and choose where it is to be stored by browsing the location. This is known as the VMX folder. Click on the “Next” button. On this screen, specify the storage space to be allocated to the virtual machine. By default, this is set to 40GB and there is no need to edit it as it will be removed in subsequent steps. Just choose “Store virtual disk as a single file” and click “Next”. Confirm everything and click on “Finish”.
Step 5: Edit the Virtual Machine
Open VMware and select “macOS 10.15 Catalina”. Click on “Edit the virtual machine”
Select the Memory tab. You want to choose about half of the available memory on your PC. You can adjust this later. If you have a lot of RAM on your PC (12 GB, 16 GB, more) you can be generous here. The key is you have to leave at least 4 GB or so of RAM for your PC to use, but the more you are able to give to the macOS, the faster it will be.
Set the CPU cores to an appropriate setting. If you have 8 cores, 4 would be great. This is similar to Memory. You want to give it enough to perform well, but you can’t starve your Windows machine to the point where it can’t function. Uncheck all boxes as shown. Click “OK” to accept the changes.
In the list of devices, choose the “Hard Disk” on device menu option. Click on “Remove” button. This removes the virtual hard disk created when first creating the virtual machine.
Then click “Add”.
To make a new virtual disk on VMware, click on Hard Disk on the list of devices then choose “SATA” followed by “Use an Existing disk”.
To select the disk, use the browse button to open the location where the “macOS 10.15 Catalina.vmdk” file is stored. Select it and click on “Finish”.
The last change you need to make in the virtual machine settings is to set your USB controller to USB 2.0. If you do not do this, you will not be able to plug your iPhone and connect it to Xcode.
Step 6: Editing the VMX File
The VMX file contains some settings you can’t see in the normal VMware interface. You need to make one change. To edit it, open the macOS 10.15 folder where you stored it (VMX folder in step 4). If you did not specify its location, look in Documents\virtual machines. Right click on the VMX file and choose “Open with”. Choose “More Apps”. From the list of apps that will be seen, choose “Notepad” and press Enter. **Do not try to open or edit the Virtual Disk (VMDK) file. You will get a message that it is too large to be opened in Notepad. You have to edit the VMware virtual machine configuration (VMX) file.
This will open the VMX file in Notepad. At the bottom, add the code:
smc.version = "0"
**Make sure these are straight quotes and NOT curly quotes like this ”
Save the changes by clicking on “Ctrl+S”.
Step 7: Play macOS Catalina
Open the VMware player if you had closed it and click on “play virtual machine”, and create a new account.
Step 8: Install VMware Tools on Virtual Machine
In VMware Player, click Player, Manage, Install VMware Tools. Then click on “Install VMware tools”. If that hasn’t popped up, click on the VMware Tools Drive on the top right.
You need to enable VMware system extensions. To do this, click on “Open Security Preferences”.
Click on the “Allow” button.
Click on the “Restart” button to restart the virtual machine.
You are done installing and configuring. You now have a running instance of macOS.
Connecting your iPhone
You can connect your iPhone (or iPod Touch) to a USB port on your PC. If VMware is open, you will receive a prompt asking how you want to handle your removable device.
Choose whichever option you like. Eventually, it will have to connect to the Virtual Machine.
If you don’t connect it to your VM initially, you will see a grey iOS icon in the top right corner of your VMware session. If it has a green dot on it, you are all set.
If it is not connected, you just need to connect it. right click the icon, and select the option to connect.
This is what it should look like when your iPhone is connected to your macOS VMware session.
Your iPhone must be visible to macOS to connect to it in Xcode. If you are having trouble accessing your iPhone is macOS, verify it is accessible in iTunes as a test.
Now you have macOS running with an iPhone connected. Your hardware is now ready to work in conjunction with Xcode to deploy an application to your iPhone.
You can apply updates to macOS. Make sure not to update to a version not supported by other components you may be using this solution for. I will keep the notes below with versions of macOS, VMware, and Unlocker that I have tested.
You can install VMware updates, but you will likely have to run the Patch/Unlocker script again after the update. Do not update to a new major version such as going from 15 to 16.
This instance of macOS may have some applications that are not usable. This would typically be iCloud and iMessage. You do not have to do anything about this. It is fine to leave these programs inoperable. If (not required), you would like to get these programs working, you would need to change the way your macOS presents itself to the Apple servers. I was able to get these programs working by loosely following this guide: https://github.com/mkitchingh/VMWare-iMessage/blob/master/instructions.md A few things are out of date, so some of the settings and features aren’t in the exact same place. It will get you going in the right direction.