Installing the Windows Phone 8 SDK on a Mac, using Parallels
This article explains how to install the Windows Phone 8 SDK on a Mac computer using the Parallels virtualization solution.
Windows Phone 8
- Your reasonably powerful Apple Mac computer ( i5 or higher CPU, 8GB RAM recommended)
- Parallels Desktop for Mac
- A Windows 8.x installation kit (for example the Windows 8 Enterprise Evaluation release)
- The Windows Phone 8 SDK installer (offline or online if internet connection is available)
Install the latest version of Parallels Desktop (screenshots below are from version 8) following product's typical install guide and then follow Parallels' guide for installing Windows 8. It is a rather straight-forward process but since we aim to run the Windows Phone emulator (a virtual machine) inside the Parallels virtual machine we have to customize the Windows VM installation, so make sure to select "Customize settings before installation".
Windows VM customization
If you have neglected to enabled VM customization at install time, or if you want to experiment with other combination of options, you can edit the setting below, and many more which are not directly relevant for this subject, using Parallels' Virtual machine -> Configure... menu. For the settings to be accessible simply stop the running VM then restart it after the settings have been changed.
Number of CPU cores
The Windows Phone Emulator's Windows Phone 8 images come configured for multicore devices, so they expect to have two CPU cores available to them. However by default Parallels makes only once CPU core available to Windows, invoking stability concerns. We have therefore two options here:
- change VM's configuration to allow Windows to see two (or more) CPU cores
- install Windows on a machine with just 1 CPU and later edit emulator VM's settings to lower its CPU setting.
You can experiment with the two options and see which works best on your machine, we recommend the first approach if your machine is powerful enough.
Parallels recommends that for a Windows VM you should allocate between 512 MB and 4 GB. We recommend at least 2 GB if you do not plan to use the SDK emulator and 4 GB or more if you plan to use the SDK emulator inside the VM. Of course the amount of memory you can make available to the VM depends on the amount of RAM available on your Mac, you should not allocate more than 50% of the total RAM to the VM.
Virtualization solutions such as Parallels do not typically encourage the use of virtual machines inside virtual machines (i.e. nested virtualization) but some do support it as an optional feature. We need to enable this feature in order for Windows Phone SDK's emulator to work, so as the next step we will check the corresponding "Enable" box in the Optimization page of the Options configuration dialog.
With these settings you are now ready to complete the Windows 8 installation according to Parallels' install guide.
Once you have Windows 8 installed fully, you can now install one of its optional features, Hyper-V. This component is required by the SDK's emulator so you must complete this step before installing the SDK.
A reboot will likely be required in order to compete the installation of this feature.
Install the Windows Phone 8 SDK
You are now ready to install the Windows Phone 8 SDK. If you have already downloaded the offline installer (ISO file) make sure to transfer it inside the Windows VM image and open it from there (you can map the *.iso as a drive and then run the setup utility). If you have an internet connection you can use the online installer. Follow the installation flow and restart the virtual machine when required.
You can now create your first Windows Phone 8 project and have it running in the emulator or on your Windows Phone 8 device.
Note that you have now Windows running as a guest OS hosted by OS X. Only one of these OSs can access the USB port so when connecting the Windows Phone to your Mac expect to see a prompt asking which OS should gain control over the new device. Select Windows Phone and you will see the appropriate drivers being installed by the OS. Once the driver installation completed you can run the SDK tools to developer unlock the device and then start deploying apps to it.
Lower SDK emulator's CPU requirements
As mentioned above the emulator image is configured with multicore support so it does expect that Windows has at least two CPU cores available. If you chose to (or are forced to) allocate only one CPU to the Windows VM you will have to lower the CPU setting for the emulator as well, or else the emulator image cannot be started.
You can find instructions for how to change this setting in Parallels' Windows Phone 8 SDK install guide.