Virtualizing macOS

Run macOS in a virtual machine to build Provenance from source without a Mac

If you don't have a Mac but want to build Provenance from source, you can run macOS in a virtual machine. This guide covers setting up a macOS VM on Windows or Linux.

circle-info

Most users don't need this. Install Provenance from the App Store or sideload a pre-built .ipa instead. A macOS VM is only needed for building from source.


Virtualization Options

Best for: Windows users with Intel processors

Requirements

  • CPU: Intel processor with VT-x/VT-d support (AMD works but requires extra patches)

  • RAM: 8 GB minimum (16 GB recommended)

  • Storage: 80+ GB free disk space

  • Software: VMware Workstation Playerarrow-up-right (free for personal use) or Workstation Pro

Setup

  1. Install VMware Workstation and the VMware Unlockerarrow-up-right (enables macOS as a guest OS option)

  2. Create a new VM:

    • Select Apple Mac OS X as the guest OS

    • Allocate at least 4 GB RAM (8 GB recommended for Xcode)

    • Set disk size to at least 80 GB (Xcode alone is ~35 GB)

  3. Configure hardware:

    • Processors: 2+ cores

    • USB Controller: Set to USB 2.0 (required for iOS device detection — USB 3.0 passthrough is unreliable in VMs)

    • Enable:

      • Automatically connect new USB devices

      • Show all USB input devices

      • Share Bluetooth devices with the virtual machine

  4. Install macOS from your installation media

  5. Install VMware Tools after macOS boots (improves graphics, clipboard sharing, and performance)

Post-Install

  1. Update macOS — Open System Settings → General → Software Update

  2. Install Xcode — Download from the App Store (free, ~35 GB)

  3. Open Terminal — Applications → Utilities → Terminal

Continue to Building from Source.


Performance Tips

Virtual machines are slower than native hardware. These tips help:

  • Allocate adequate RAM — 8 GB for the VM if your host has 16+ GB

  • Use an SSD — VM disk I/O on a spinning hard drive is painfully slow

  • Close unnecessary host apps — Free up CPU and RAM for the VM

  • Use Release builds — When building Provenance in Xcode, always use the Release scheme (Debug builds are 5-10x slower and even more so in a VM)

  • Disable Spotlight indexing inside the VM — System Settings → Siri & Spotlight → uncheck categories


Troubleshooting

chevron-rightiOS device not detected over USBhashtag
  • Make sure VMware/VirtualBox is in focus (click inside the macOS window) before plugging in your device — otherwise the host OS grabs the USB connection

  • Set USB Controller to USB 2.0 (not 3.0) in VM settings

  • On the device, tap Trust when the "Trust This Computer?" dialog appears

  • In VMware: VM menu → Removable Devices → verify your device is connected to the VM

chevron-rightCannot detect Apple TV 4K over WiFihashtag

Apple TV 4K uses WiFi for Xcode pairing (no USB port). VMs default to NAT networking, which blocks local network discovery.

Fix: Change the VM's network adapter from NAT to Bridged (or Custom → VMnet0) so the VM connects directly to your local network. This enables Bonjour/mDNS discovery needed for Apple TV pairing.

chevron-rightmacOS won't boot or shows a black screenhashtag
  • Verify your CPU supports hardware virtualization (Intel VT-x / AMD-V) — enable it in BIOS settings

  • For VMware: Ensure the Unlockerarrow-up-right is properly installed

  • For VirtualBox: Verify all command-line patches were applied correctly

  • Try a different macOS version — some versions work better with certain VM software

chevron-rightDisplay resolution is wrong or too smallhashtag
  • VMware: Install VMware Tools, then use View → Autosize → Autofit Guest

  • VirtualBox: Install Guest Additions (limited macOS support), or set resolution manually:

  • In macOS: System Settings → Displays → choose "Default for Display" or select a specific resolution

chevron-rightXcode build is extremely slowhashtag
  • Allocate more CPU cores and RAM to the VM

  • Use an SSD for VM storage

  • Build the Release scheme (not Debug)

  • Close Xcode's Simulator — it's not needed when deploying to a physical device

  • Consider using a pre-built .ipa via sideloading instead


Alternative: Hackintosh

Instead of a VM, you can install macOS directly on compatible PC hardware (a "Hackintosh"). This gives near-native performance but requires compatible hardware and more setup effort.

Resources:

circle-exclamation

circle-check

Last updated