Skip to content

FIX: macos build#2300

Merged
NeoPlays merged 2 commits into
stereum-dev:mainfrom
NeoPlays:fix-macos-build
May 18, 2026
Merged

FIX: macos build#2300
NeoPlays merged 2 commits into
stereum-dev:mainfrom
NeoPlays:fix-macos-build

Conversation

@NeoPlays
Copy link
Copy Markdown
Member

FIX: macOS build

Fixes the unsigned macOS build, which was failing to launch on macOS 14.4+ / macOS 26 due to inconsistent Team IDs between the (pre-signed) Electron Framework and the unsigned main binary, causing dyld to reject the load.

Background

electron-builder v26 no longer re-signs bundled frameworks when no signing certificate is provided. The Electron Framework ships pre-signed with the Electron project's Apple Team ID, while the main executable has no Team ID — dyld's validation refuses to load the app as a result.

Changes

launcher/afterPackMac.js (new file)

  • Adds an afterPack hook that runs only on darwin.
  • Ad-hoc re-signs the entire .app bundle with codesign --force --deep --sign -, so all binaries share a consistent (empty) Team ID and dyld validation passes.

launcher/vue.config.js

  • Introduces isSigned flag derived from CSC_IDENTITY_AUTO_DISCOVERY !== "false".
  • Wires up the new afterPackMac.js hook only for unsigned builds.
  • hardenedRuntime is now conditional on isSigned — it requires consistent Team IDs across binaries and only makes sense when actually signing.
  • entitlements / entitlementsInherit are likewise only set on signed builds.

Result

  • Signed/notarized builds: behavior unchanged.
  • Unsigned local/CI builds: app launches correctly on macOS 14.4+ and macOS 26+.

@NeoPlays NeoPlays merged commit 13daa72 into stereum-dev:main May 18, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant