Skip to content

macOS Intel bundle fails to launch (missing Swift runtime) — upstream menuinst/feedstock fix #401

Description

@hiroalchem

Summary

The official macOS Intel (x86_64) bundled app fails to launch on a clean Intel Mac:

dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /Applications/napari (0.7.1).app/Contents/MacOS/napari-071
  Reason: image not found

Reproduced with napari 0.7.0 and 0.7.1 Intel installers. Apple Silicon bundles are
not affected.

Root cause (upstream)

Contents/MacOS/napari-071 is menuinst's Swift appkit_launcher. It links the Swift
runtime (libswiftCore etc.) non-weak via @rpath. The launcher source ships with a
/usr/lib/swift RPATH, but conda package binary relocation strips that RPATH when
the menuinst conda-forge package is built, so the shipped launcher can't locate the OS
Swift runtime on Intel. (Apple Silicon is fine: arm64 dyld resolves Swift from the dyld
shared cache without the RPATH.)

Why this matters for napari

napari's macOS installers are built via conda constructor + menuinst, so all Intel
bundles are currently unlaunchable. Once the fixed menuinst package is published,
napari/packaging needs to pick it up and rebuild the Intel installers (and ideally
re-release 0.7.x Intel artifacts).

Environment

  • macOS 13.7.8 (22H730), Intel (MacBookPro14,1), x86_64
  • napari 0.7.0 and 0.7.1 official macOS Intel installers

Workaround for affected users (until a fixed build ships)

Re-add the RPATH to the bundled launcher (do not rename the .app — the launcher
locates its wrapped app by bundle name):

APP="/Applications/napari (0.7.1).app"
sudo install_name_tool -add_rpath /usr/lib/swift "$APP/Contents/MacOS/napari-071"
sudo codesign -f -s - "$APP/Contents/MacOS/napari-071"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions