Rosetta Enforcer is a macOS utility that allows developers convert Universal Binary application to Single Architecture, saving hundreds of megabytes of space and resolving a possible compatibility issue.
Developed and Designed by John Seong. Served under the BSD-2-Clause License.
Other Useful Links
Official Website & Documentation
What is the general use case for it? Why would anyone prefer Rosetta instead of running the app natively on ARM macs?
It can save hundreds of megabytes of storage by simply removing unnecessary binaries from the app files. Not only that, it can also resolve the compatibility issue present in macOS apps that are not compiled directly through Xcode.
I made a game that uses PyGame, and when I try to compile it using PyInstaller to .app file, it automatically generates a Universal Binary app without giving developers a choice to select either Intel or ARM. Just as a side note, PyGame library does not support ARM macs yet, so if I run it normally without turning on the “Open using Rosetta” option in the default macOS “Show properties” menu when you right-click the app, it literally crashes immediately upon launch. When distributing an app that is NOT compiled using Xcode directly to users, I can’t just write in big red letters to go to properties and turn on the ‘Open using Rosetta’ option all the time; that’s too much work for users in most of the cases, and if they skip that stage ARM mac users will think the app simply crashes every time after launch. Using Rosetta Enforcer, developers can permanently remove one of the so-called “mis-compiled” binaries without going through a hassle of going to Terminal and typing commands.
- Universal Binary to Intel-only
- Universal Binary to ARM-only
- SwiftUI: User Interface Toolkit
lipo
command (native on most Macs)
Please note that the app is not sandboxed due to it nature of modifying other apps in the ~/Applications
folder. Therefore, it cannot be distributed on the Mac App Store.