Highlights
- UTM Remote server for macOS On macOS 13+, you can enable UTM Server from the new option on the home screen or from Window -> UTM Server. Once enabled, you can stream QEMU backend VMs to supported clients. The preferences page includes additional options including auto-starting the server and allowing external connections so it can be used outside of the local network. New documentation pages will be added in the future.
- UTM Remote client for iOS and visionOS When UTM Server is enabled on macOS, you can connect to it with the new UTM Remote client which uses the same frontend as UTM for iOS/visionOS but without any of the QEMU backend. TestFlight will be available as soon as it is approved and the plans are to release it as a free app in the App Store.
Notes
- (macOS) The automation URI scheme has been removed due to potential security issues if the user clicks a malicious link that sends an input to the VM. Most of the URI scheme functionality has moved to the scripting interface.
Changes (v4.5.1)
- Fixed an issue with file locking resulting in VMs refusing to boot (#5757, #5830)
- Fixed incorrect VM size calculation (#6166)
- Show confirmation popup for VM downloads (#6156)
- Removed automation URI scheme due to potential security issues (#6155)
- Fixed display of newly selected custom icon (#6137)
- Wizard: allow completely deleting RAM and storage size (#5885)
- Scripting: Fixed file and process commands not working due to incorrect object life cycle (#5963)
- Localization: Updated Japanese (thanks @MMP0)
- Localization: Updated Polish (thanks @mavethee)
- Localization: Updated Chinese (Simplified + Traditional) (thanks @changanmoon)
- (iOS) Fixed zooming with pinch (#6179)
- (macOS) Fixed USB icon always disabled (#6222)
- (macOS) Fixed a crash when removing a device while a text field is highlighted (#5901)
- (macOS) Fixed error message when double-clicking on a headless VM which has already been started (#5972)
- (macOS) AVF: New display option to disable dynamic resolution in macOS 14+ VMs (#5873)
- (macOS) Remove "VM display size is fixed" global setting because it was confusing and does not do the right thing
- (macOS) Fixed incorrect display scaling when host screen resolution is smaller than VM display size (#6214)
Changes (v4.5.0)
- Updated ANGLE to latest Safari version
- Fixed a crash due to screenshot being saved while the image was being destroyed (#4009)
- Fixed a memory leak caused by a retain cycle while observing changes in the VM state
- Localization: Added Italian (thanks @garamb1)
- Localization: Updated Japanese (thanks @MMP0)
- Localization: Updated Polish (thanks @mavethee)
- Localization: Updated Chinese (Simplified + Traditional) (thanks @changanmoon)
- (macOS) Add UTM Server feature
- (iOS) Fixed the icon name for UTM SE erroneously set to UTM in translation (#5968)
- (iOS) Disable logging of keyboard keys when Debug Logs are enabled. They aren't helpful for any issue debugging and poses a privacy issue.
- (iOS) Reworked automatic resolution changing when SPICE tools are installed
- (iOS) Fix crash due to race when re-sizing while a view is being destroyed
- (visionOS) Move toolbar to top of window and support hiding
- (visionOS) Make VM windows less rounded
- (visionOS) Integrate new keyboard view
Issues
Please check the full list on Github and help report any bug you find that is not listed.
Installation
File | Description | Installation | JIT | Hypervisor | USB |
---|---|---|---|---|---|
UTM.deb | Jailbroken iOS version | Open in Cydia, dpkg, or Sileo | Yes | Yes(1) | Yes |
UTM.dmg | macOS version | Mounting and copying UTM.app to /Applications | Yes | Yes | Yes |
UTM.ipa | Non-jailbroken iOS version (sideloading) | AltStore, etc (see guide) | Yes(2) | No | No |
UTM-HV.ipa | Non-jailbroken iOS version (TrollStore) | TrollStore | Yes | Yes(1) | Yes |
UTM-SE.ipa | Non-jailbroken iOS version (sideloading) | AltStore, enterprise signing, etc | No | No | No |
UTM-Remote.ipa | Remote client | Any | No | No | No |
- Hypervisor on iOS requires an M1 iPad.
- Enabling JIT may require a separate JIT enabler such as Jitterbug or Jitstreamer.