Prerequisites
Description of the issue
On macOS, the generated game bookmark .app bundle appears to use a shell script directly as CFBundleExecutable:
<key>CFBundleExecutable</key>
<string>runner.sh</string>
with the executable at:
The script itself works when run directly, but launching the generated bookmark app through Finder/LaunchServices fails with:
The application "Finder" does not have permission to open "(null)."
Launching it with open returns:
_LSOpenURLsWithCompletionHandler() failed for the application ... with error -54.
The same generated app also did not reliably appear in Raycast's application index. Spotlight only partially recognized it until the bundle was made more conventional.
This seems to be an app-bundle generation issue rather than an emulation/game issue. macOS LaunchServices, Finder, Spotlight, and third-party launchers expect a more conventional .app bundle. Using a .sh file directly as the bundle executable appears fragile.
A local workaround fixed both launch and indexing:
- Replaced
runner.sh as the main executable with a tiny compiled Mach-O launcher named runner.
- Changed
CFBundleExecutable from runner.sh to runner.
- Left the existing shell script as an implementation detail invoked by that launcher.
- Added conventional bundle metadata:
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleIdentifier</key>
<string>com.example.generated-bookmark</string>
- Added
Contents/PkgInfo containing:
- Re-signed the bundle ad-hoc and re-registered it with LaunchServices.
After that, open '/Applications/Tomodachi Life: Living the Dream.app' succeeded and Spotlight/Raycast indexing worked.
A robust implementation probably would not need users to have a compiler installed. Ryujinx/Ryubing could ship one precompiled universal launcher binary and copy it into each generated bookmark app. The generated bookmark app could store the game path/application ID in a plist/json file inside the bundle, and the launcher could exec Ryujinx with the correct arguments.
AppleScript app generation would probably also be more compatible than using a raw shell script as the bundle executable, but a bundled launcher binary seems cleaner.
Reproduction steps
- On macOS, create a game bookmark app from Ryujinx/Ryubing.
- Inspect the generated app bundle's
Contents/Info.plist.
- Observe that
CFBundleExecutable points directly to runner.sh.
- Try to open the generated app from Finder.
- Finder shows:
The application "Finder" does not have permission to open "(null)."
- Try to launch it from Terminal with
open '/Applications/<generated bookmark>.app'.
open fails with LaunchServices error -54.
- Run
Contents/MacOS/runner.sh directly.
- The script itself works, confirming the issue is the generated
.app bundle/LaunchServices integration.
Log file
This does not appear to produce a normal Ryujinx emulation log because the failure happens before Ryujinx is launched by Finder/LaunchServices.
Relevant terminal output:
_LSOpenURLsWithCompletionHandler() failed for the application /Applications/Tomodachi Life: Living the Dream.app with error -54.
OS
macOS 26.4.1 (25E253)
Ryujinx version
1.3.294
Game version
N/A - issue is with generated macOS bookmark app bundle before game launch
CPU
Apple M4 Pro
GPU
Apple M4 Pro integrated GPU
RAM
24GB
List of applied mods
N/A
Additional context?
The generated bookmark app had metadata similar to:
kMDItemContentType = "com.apple.application-bundle"
kMDItemFSName = "Tomodachi Life: Living the Dream.app"
but Finder/LaunchServices launch failed until the bundle used a Mach-O executable stub instead of the shell script as CFBundleExecutable, and until conventional app metadata such as CFBundlePackageType=APPL was added.
Prerequisites
Description of the issue
On macOS, the generated game bookmark
.appbundle appears to use a shell script directly asCFBundleExecutable:with the executable at:
The script itself works when run directly, but launching the generated bookmark app through Finder/LaunchServices fails with:
Launching it with
openreturns:The same generated app also did not reliably appear in Raycast's application index. Spotlight only partially recognized it until the bundle was made more conventional.
This seems to be an app-bundle generation issue rather than an emulation/game issue. macOS LaunchServices, Finder, Spotlight, and third-party launchers expect a more conventional
.appbundle. Using a.shfile directly as the bundle executable appears fragile.A local workaround fixed both launch and indexing:
runner.shas the main executable with a tiny compiled Mach-O launcher namedrunner.CFBundleExecutablefromrunner.shtorunner.Contents/PkgInfocontaining:After that,
open '/Applications/Tomodachi Life: Living the Dream.app'succeeded and Spotlight/Raycast indexing worked.A robust implementation probably would not need users to have a compiler installed. Ryujinx/Ryubing could ship one precompiled universal launcher binary and copy it into each generated bookmark app. The generated bookmark app could store the game path/application ID in a plist/json file inside the bundle, and the launcher could exec Ryujinx with the correct arguments.
AppleScript app generation would probably also be more compatible than using a raw shell script as the bundle executable, but a bundled launcher binary seems cleaner.
Reproduction steps
Contents/Info.plist.CFBundleExecutablepoints directly torunner.sh.The application "Finder" does not have permission to open "(null)."open '/Applications/<generated bookmark>.app'.openfails with LaunchServices error-54.Contents/MacOS/runner.shdirectly..appbundle/LaunchServices integration.Log file
This does not appear to produce a normal Ryujinx emulation log because the failure happens before Ryujinx is launched by Finder/LaunchServices.
Relevant terminal output:
OS
macOS 26.4.1 (25E253)
Ryujinx version
1.3.294
Game version
N/A - issue is with generated macOS bookmark app bundle before game launch
CPU
Apple M4 Pro
GPU
Apple M4 Pro integrated GPU
RAM
24GB
List of applied mods
N/A
Additional context?
The generated bookmark app had metadata similar to:
but Finder/LaunchServices launch failed until the bundle used a Mach-O executable stub instead of the shell script as
CFBundleExecutable, and until conventional app metadata such asCFBundlePackageType=APPLwas added.