Git Product home page Git Product logo

wonmor / rosetta-enforcer Goto Github PK

View Code? Open in Web Editor NEW
19.0 3.0 1.0 18.06 MB

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.

Home Page: https://install-rosetta-enforcer.netlify.app

License: BSD 2-Clause "Simplified" License

Swift 100.00%
arm arm64 lipo m1 m1-extension m1-mac mac macos swift swiftui

rosetta-enforcer's Introduction

Icon-MacOS-512x512@1x

Rosetta Enforcer

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.

Download for macOS


Other Useful Links

Official Website & Documentation


Screen Shot 2022-05-02 at 7 25 38 PM


You might ask...

What is the general use case for it? Why would anyone prefer Rosetta instead of running the app natively on ARM macs?


Short Answer

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.


Long Answer

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.


Possible Conversions

  1. Universal Binary to Intel-only
  2. Universal Binary to ARM-only

Screen Shot 2022-04-27 at 4 55 26 PM

Screen Shot 2022-05-06 at 3 09 25 PM


Dependencies

  • 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.

rosetta-enforcer's People

Contributors

wonmor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

ramzimalhas

rosetta-enforcer's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.