Welcome to Bushel

Support

Welcome

Experiencing issues with Bushel? Whether you’re facing setup challenges, troubleshooting errors, or need guidance on advanced features, this support page is designed to help. Find solutions, tips, and detailed guides to resolve common problems and enhance your experience with Bushel.

Feel to contact us by email.

User Guide

library icon

Libraries

In Bushel, a Library serves as a central repository for macOS restore images, commonly known as .ipsw files. These restore images are crucial for setting up virtual machines within the app.

Why are Libraries Important?

Libraries play a pivotal role in the seamless functioning of Bushel. They allow you to store, organize, and access various macOS restore images essential for configuring and running virtual machines. With a well-maintained Library, you can easily select specific macOS versions and configurations for their testing needs.

How to Use Libraries in Bushel:

  1. Creation: After onboarding, follow the prompts to create your Library within Bushel.
  2. Importing Images: Import restore images manually or through online hubs, making them accessible within your Library.
  3. Selection for Virtual Machines: When creating a new virtual machine, choose the desired macOS version from your Library for installation.
  4. Maintenance: Regularly maintain and update your Library to ensure a comprehensive collection of macOS restore images.

Libraries are the backbone of your testing environment in Bushel, offering a convenient and organized way to access essential macOS restore images. By utilizing Libraries effectively, you can streamline their virtual machine setup and testing processes for optimal app development.

image icon

Images

In Bushel, an Image refers to a macOS restore image stored within your Library. These images, often recognized by their .ipsw file format, contain specific versions of macOS that you can use to install and configure virtual machines for app testing.

Images stored in Libraries represent complete versions of macOS, essential for installing and configuring virtual machines within Bushel. They serve as the operating system to be installed on the virtual machine. Each image represents a specific version of macOS, allowing you to choose and install specific operating systems required for their testing needs.

Get started by importing images manually or through online hubs. When setting up a new virtual machine, you can select the desired macOS image from your Library.

hub icon

Hubs

In Bushel, a Hub refers to an online repository or source that provides you with a collection of macOS restore images (.ipsw files). Hubs serve as convenient sources for obtaining various versions of macOS to import into your Library for setting up virtual machines.

Hubs expand the range of available macOS versions beyond the default offerings within the app. They give you access to a broader selection of macOS restore images, enabling you to create a more diverse range of testing environments.

machine icon

Machine

In Bushel, a Machine refers to a virtual computer environment created within the app to install and run different versions macOS operating systems.

Machines serve as isolated environments which allows you to test and develop apps across various operating system versions without affecting your primary system.

Key Features of Machines:

  1. Operating System Testing: You can install and test different versions of macOS, including beta releases or older versions, within your individual machines.
  2. Custom Configurations: Customize each machine with specific settings, such as memory allocation and CPU usage, to replicate diverse testing environments.
  3. Snapshot Functionality: Machines support the creation of snapshots, allowing you to capture and revert to specific states for efficient testing and debugging.

How to Use Machines in Bushel:

  1. Creating Machines: Within Bushel, follow the prompts to create a new virtual machine, selecting the desired macOS image from your Library.
  2. Customizing Settings: Customize machine configurations, such as memory allocation and CPU usage, based on your testing requirements.
  3. Running Tests: Install and run apps or scripts within the virtual machine environment to perform tests or debug applications.
  4. Snapshot Management: Utilize the snapshot functionality to capture specific states of the machine and revert to them as needed.

Machines in Bushel are virtual environments that allow you to install and run different versions of macOS for app testing and development. By effectively utilizing and managing machines, you can conduct comprehensive testing across various operating system versions without impacting your primary system.

snapshot icon

Snapshot

In Bushel, a Snapshot is a point-in-time copy of the current state of a virtual machine (VM). It captures the entire configuration, settings, and data of the VM at that specific moment.

Snapshots serve as a safety net for users, allowing them to create a backup of a VM's state before making changes or updates. This enables easy restoration to a previous state if needed, avoiding potential issues or data loss.

Key Features of Snapshots

  1. State Preservation: Snapshots capture the exact configuration and content of the VM at the time they are taken.
  2. Rollback Capability: Users can revert a VM back to a specific snapshot, restoring the VM to its state at that particular point in time.
  3. Testing and Debugging: Snapshots facilitate testing different scenarios or changes within a VM without the risk of permanent alterations.

How to Use Snapshots in Bushel

  1. Taking Snapshots: Within the Bushel interface, initiate the snapshot feature to capture the current state of the VM.
  2. Restoring from Snapshots: If necessary, revert the VM back to a previously taken snapshot to return to that specific state.
  3. Snapshot Management: Organize and manage snapshots by naming them descriptively to easily identify specific states of the VM.

Snapshots in Bushel are a vital feature that enables users to capture and restore the state of a virtual machine, providing a safety net for testing and development. By effectively utilizing snapshots, users can experiment and make changes within VMs without the fear of losing critical configurations or data.

Tips and Tricks

Ideal Development Setup for macOS Monterey

If you plan to use your VM for development, there are a few steps you can take to prepare your machine.

Customize Your VM

Once the machine is setup, there are a few things I'd recommend doing:

Remove Dock Icons

Since we can't sign-in with our Apple ID, any application which requires an Apple ID can be removed from the Dock. Besides any other app which you won't be using should be removed.

Customize Your Settings

Do you like light or dark mode? Natural scrolling or reverse scrolling? It's good to set these up according to your preferences.

Disable Updates

Update Notifications and Badges in macOS Monterey

If you are using an older version of macOS you can disable those update notifications and badges using the following commands:

defaults write com.apple.systempreferences AttentionPrefBundleIDs 0 && killall Dock

Install Xcode

Go ahead and install Xcode on your VM based on the version you'd like to be compatible with. An excellent resource for Xcode versions is Xcode Releases or the tool Xcodes.

Xcode on macOS Monterey

Enable Sharing

The easiest way to setup sharing across your host machine is to setup File Sharing on your guest VM. Additionally it may be a good idea to also enable:

  • Remote Management
  • Remote Apple Event
  • Remote Login (i.e. ssh)

Sharing Under System Preferences

There are a few steps to ensure you can properly ssh into your VM if you wish.

Setting up SSH

sshd-keygen-wrapper Full Disk Access in Privacy and Security

Once you've setup ssh, take note of the ip address this machine is currently. Before you ssh in be sure to give sshd-keygen-wrapper Full Disk Access. If you don't you will receive an Operation not permitted error in the terminal.

Once you're able to ssh in be sure to setup your favorite shell or shell customizations such as ohmyzsh or fish.

This is also a good time to install homebrew or package manager of your choice.

If you plan to use git, be sure to create and add your ssh key as well to your favorite source code repository.

FAQs

I try to sign-in with my Apple account from the Virtual Machine but it always fails.

This is a known issue with Virtualization. You can not sign into a VM with your Apple ID. We have researched this extensively and there’s simply no way to get around this. There are plenty of posts where other developers have run into this. As for now, there's no way in getting around this.

Can I make virtual machine for Linux or Windows?

No, unfortunately this app is focused on app developers who use or develop for macOS. At some point we may support Linux and even more so Windows but that's not a focus for Bushel right now.

Can I share clipboard? How can I share files between my machine and my virtual machine?

The easiest way to setup sharing across your host machine is to setup file sharing on your guest VM.

Can I use this on an Intel machine?

Unfortunately the Virtualization framework we are using does not support Intel Macs.

Can I use a VM to do iOS development on an older version of Xcode?

Yes. You can install Xcode on VM. That's the purpose of Bushel of course. There are caveats of course but as long as you don't need those features for now, please do install Xcode and do development.

If there's something missing which would help you with development on your VM, don't hesitate to contact us.

How do I install the Operating System, I see no images!

Before you can create a machine, you need to have images available. Create a library and import restore images to use for your machine.

How much does this cost?

Bushel is completely free! However there are some really great features available to Pro Subscribers such as:

Automatic Periodic Snapshots

Enjoy automatic periodic snapshots to safeguard your progress.

Annotate Your Snapshots

Organize and annotate snapshots with additional notes.

Auto-Snapshot on Shutdown

snapshots on shutdown for instant backups.

More features are coming soon exclusive to the Pro subscription, so stay tuned!

How to post feature request or feedback?

There are several ways:

I got this error (DFU) what does it mean?

Some restore images are not compatible while in the case of DFU errors some are disallowed by Apple. Here's the precise wording from the Apple Feedback:

Please know that our engineering team has determined that this issue behaves as intended based on the information provided. We stop authorizing installs of seed builds shortly after the final release.

We are currently making a list of those images and will keep you up to date.

Can I use a VM to do iOS development on an iPhone?

This isn't currently supported but we are currently researching ways to do this.

Which macOS versions can I use to create a Virtual Machine?

The oldest guest version of macOS which is compatible is macOS Monterey v12.0.1; any version newer than that should work with Bushel. However if you plan to work with Xcode in your VM, you may wish to work with Ventura or newer...

Why does my app crash in Xcode on the Monterey VM when I use a push button?

We've found that push buttons crash in Xcode 13.4.1 on a macOS Monterey 12.0.1 virtual machine - in either AppKit or SwiftUI. It will throw the following message:

validateComputeFunctionArguments:830: failed assertion `Compute Function(ciKernelMain): writes texture ([0]) whose usage (0x00) doesn't specify MTLTextureUsageShaderWrite (0x02)'

If you have trouble viewing the video, you can download it here.

We haven't found this issue when running outside of Xcode or with different button types. If we gather any more information on this we will continue to keep you informed.