How to Test Your App on Different macOS Versions

When you distribute your app, your users may be running different macOS versions. Testing on multiple versions helps you catch compatibility issues before your users do.

The easiest way to do this without needing extra hardware is by running a virtual machine with VirtualBuddy.

What is VirtualBuddy?

VirtualBuddy is a free, open-source macOS app that lets you create and manage macOS virtual machines using Apple's Virtualization framework. It supports running macOS Monterey (12) and later, so you can test your app across a wide range of versions.

Requirements

  • A Mac with Apple Silicon
  • macOS Ventura (13) or later on the host machine
  • Enough free disk space for the macOS installer and VM (~30-60 GB per VM)

Setting Up a Virtual Machine

  1. Download VirtualBuddy from GitHub
  2. Open VirtualBuddy and create a new virtual machine
  3. Select the macOS version you want to install. VirtualBuddy will download the restore image for you
  4. Follow the on-screen setup to complete the macOS installation

You can create multiple VMs for different macOS versions to cover your supported range.

Quick Testing With a Built App

If you don't need the full development environment, you can copy a built app into the VM instead. VirtualBuddy supports shared folders between your Mac and the virtual machine, so you can quickly move your .app bundle or .dmg into the VM for testing.

Alternatively, you can drag and drop files directly into the VM window.

Developing Directly Inside the VM

You can install Xcode inside the VM and build, run, and debug your app there, just like on your host Mac. This works on macOS 15 (Sequoia) or later VMs and supports apps with iCloud and other Apple service entitlements.

  1. Install Xcode inside the VM from the App Store or developer.apple.com
  2. Open System Settings and sign in with your Apple Account
  3. Open Xcode and add your Apple Account under Settings → Accounts
  4. Access your project through a shared folder and build and run as usual

This gives you the full development experience — breakpoints, console output, and profiling — on whichever macOS version the VM is running.

Tips

  • Test both your oldest supported macOS version and the latest one
  • Pay attention to deprecated APIs that may behave differently across versions
  • Use shared folders to access your project source code inside the VM — no need to clone your repository separately