Skip to content

fix(macos): notarization (sign nested code; fail+log on reject)#59

Merged
TCVinNYC merged 1 commit into
mainfrom
fix/macos-notarization
Jun 22, 2026
Merged

fix(macos): notarization (sign nested code; fail+log on reject)#59
TCVinNYC merged 1 commit into
mainfrom
fix/macos-notarization

Conversation

@TCVinNYC

Copy link
Copy Markdown
Member

The 2.1.0-rc1 release surfaced that macOS notarization returns status: Invalid and the script then failed stapling a rejected build (exit 65).

  • Sign every nested Mach-O (.dylib/.so) explicitly (hardened runtime + timestamp) before sealing the bundle — codesign --deep is unreliable for notarization, the usual cause of "Invalid" on PyInstaller apps.
  • notarize_and_staple now verifies status: Accepted; otherwise it prints Apple's detailed notary log and fails the build instead of stapling a rejected artifact.

Validates on the next release tag. (rc1's run was cancelled since macOS failed and it couldn't publish.)

🤖 Generated with Claude Code

…n reject)

The 2.1.0-rc1 release build signed and submitted the .app but Apple returned
"status: Invalid", and the script then tried to staple a rejected artifact
(exit 65). Two fixes:

- Sign every nested Mach-O (dylib/.so) explicitly with the hardened runtime +
  timestamp before sealing the bundle. `codesign --deep` is unreliable for
  notarization, which rejects bundles containing any unsigned/old-signature
  nested code (the usual cause of "Invalid" for PyInstaller apps).
- notarize_and_staple now checks for "status: Accepted"; on anything else it
  prints Apple's detailed notary log (xcrun notarytool log <id>) and fails the
  build instead of stapling a rejected artifact.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@TCVinNYC TCVinNYC merged commit f6c24f5 into main Jun 22, 2026
@TCVinNYC TCVinNYC deleted the fix/macos-notarization branch June 22, 2026 06:32
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