Just a little little bit of background: In the event you make an app with no compiled Arm64 binaries within the Content material/MacOS
folder, MacOS erroneously identifies it as an Intel based mostly app. After launching the app, MacOS will immediate the consumer to put in rosetta, regardless of the app operating tremendous natively. I discovered a easy resolution to this subject, both embrace a do-nothing compiled binary to Contents/MacOS
, or add
<key>LSArchitecturePriority</key>
<array>
<string>arm64</string>
</array>
to the plist. I posted the answer right here Shell script software bundle prompts for Rosetta set up
The issue is this transformation solely fixes the problem in the event you additionally change the BundleID. In the event you run the app even as soon as with the dangerous configuration, MacOS appears to cache the intel flag someplace based mostly on the BundleID. It doesn’t appear to be cached within the typical locations.
Learn how to reproduce: (On apple silicon)
- You in all probability have already got rosetta, and it’s a ache to take away, so a VM is probably going wanted.
- Make an empty app with Script Editor, export with file format: Utility.
- Change
Instance.app/Content material/MacOS/applet
with a script of the identical identify. Ensure that the outdated applet is gone, do not rename it and depart it within the listing. I used:
#!/usr/bin/osascript
show dialog "Hi there, world"
- Make it executable
sudo chmod +x ./Instance.app/Content material/MacOS/applet
- Run it and observe that it asks you to put in rosetta
- Add the beforehand talked about repair to you plist, together with the BundleID change
- Run it and observe that it now works
- Change your BundleID again. Operating this now raises the rosetta immediate although it runs tremendous on a clear set up of MacOS.
Issues I’ve tried:
- Rebooting, no impact
- Reforming the app, no impact
- Reboot in restoration mode, no impact
~/Library/Preferences
,~/Library/Caches
,/Library/Preferences
, and/Library/Caches
, none comprise an entry for the BundleId- defaults delete, area not discovered
I’m not nice with MacOS so it’s doable I’m overlooking one thing easy.