Skip to content

Update workflows for macOS 27.0#62

Merged
Nidrax merged 2 commits into
trunkfrom
claude/macos-golden-gate-workflow-update
Jun 19, 2026
Merged

Update workflows for macOS 27.0#62
Nidrax merged 2 commits into
trunkfrom
claude/macos-golden-gate-workflow-update

Conversation

@Nidrax

@Nidrax Nidrax commented Jun 19, 2026

Copy link
Copy Markdown
Member

On macOS 27 Golden Gate beta, the current ARM64 DMG can be copied locally but LaunchServices/codesign treats the app bundle as malformed because Contents/Info.plist does not declare the executable in Contents/MacOS/libresprite. Adding the key matches the actual bundle layout and lets the app be re-signed and launched normally.

Adapted from LibreSprite#627
Closes #61

On macOS 27 Golden Gate beta, the current ARM64 DMG can be
copied locally but LaunchServices/codesign treats the app bundle
as malformed because `Contents/Info.plist` does not declare the
executable in `Contents/MacOS/libresprite`. Adding the key matches
the actual bundle layout and lets the app be re-signed
and launched normally.

Adapted from LibreSprite#627
Closes #61
@Nidrax

Nidrax commented Jun 19, 2026

Copy link
Copy Markdown
Member Author

Ends in CODESIGN error when signed with GitHub workflow (possibly missing some essential updates to the package_macos.sh:
macos_codesign_error.log

- Removed `--timestamp` from all `codesign` calls — it's only valid
  for Developer ID signing, not ad-hoc (`-s -`); pairing them can
  produce a signature that dyld on macOS 27 rejects at page validation
- Split dylib signing from executable signing — dylibs now get
  `codesign--force -s -` (no hardened runtime flags); the main executable
  and app bundle keep `--options=runtime` with the entitlements
- Fixed `-neq` → `-ne` in the workflow's error check

The `CS_RUNTIME` flag (set by `--options=runtime`) opts the process
into the hardened runtime, which makes macOS 27's code signing monitor
(`codeSigningMonitor: 2`) enforce kernel-level page hash validation on
every loaded dylib. Ad-hoc signatures generated by GitHub's macOS 14/15
runners don't satisfy this validation on macOS 27.

- Removed `--options=runtime` and the entitlements file entirely from
  all signing steps in both cmakeMacOs.yml and package_macos.sh.
  Without `CS_RUNTIME`, library validation is not kernel-enforced,
  so dylibs load freely regardless of their signature state.
  This also unblocks V8's JIT compiler as a side effect.

Co-authored-by: Claude <noreply@anthropic.com>
@Nidrax Nidrax force-pushed the claude/macos-golden-gate-workflow-update branch from 4da989a to d751982 Compare June 19, 2026 15:13
@Nidrax

Nidrax commented Jun 19, 2026

Copy link
Copy Markdown
Member Author

f4d42a7 (master):
Screenshot 2026-06-19 at 16 28 20

d751982:
Screenshot 2026-06-19 at 20 14 53

@Nidrax Nidrax merged commit c823ecc into trunk Jun 19, 2026
11 checks passed
@Nidrax Nidrax deleted the claude/macos-golden-gate-workflow-update branch June 19, 2026 18:39
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.

Prepare macOS bundle workflows for 27.0 Golden Gate

1 participant