Why would a MacOS app not run from Launchpad or Finder but run from Terminal just fine?

It is due to outdated code signatures. MacOS prevents it from running. To override this behavior, the developers of DrRacket told me to drag the app out of the folder and back into the folder to force MacOS to trust the app. This worked.


Since it is cross-platform, Racket was not built using the standard macOS App Bundle and opening the DMG just displays a folder, not an app. Within the folder is the DrRacket.app, which launches via Finder or Launchpad. It also contains the various folders for a more traditional command-line installation.

As of Racket 7.2, "/Applications/Racket\ v7.2/bin/drracket" (note the lowercase), is a shell script designed to launch the GUI app via the Terminal. Also contained within the folder is a terminal-based "racket" application.

You can drag the DrRacket.app file from the top-level of the Racket 7.X folder to the Desktop or Dock if you want a quick way of launching the GUI or use Spotlight.


If you want to fix all of the apps in the Racket download at once (bug still exists/returned on monterey beta/m1) you can execute the following command in the terminal in the top level Racket folder (the one you copied out of the dmg):

find . -name '*.app' -exec xattr -d com.apple.quarantine "{}" \;

This will remove the quarantine attribute on the files.


If you run it in apps directory it will unquarantine all binaries (generally not what you want but can be helpful if you just moved to a new machine and don't want to manually authorize each non-signed app you have installed).