Skip to content

Fix macOS app signing and notarization in CI pipeline#1

Merged
philliphoff merged 1 commit into
mainfrom
copilot/fix-macos-application-signing
Apr 11, 2026
Merged

Fix macOS app signing and notarization in CI pipeline#1
philliphoff merged 1 commit into
mainfrom
copilot/fix-macos-application-signing

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 11, 2026

The CI pipeline was producing an unsigned, unbundled macOS binary that Gatekeeper rejects. The fix ports the correct signing/notarization approach from the EncDotNet.S100 repo.

New files

  • Info.plist — required macOS .app bundle metadata (bundle ID, executable name, min OS version)
  • entitlements.plist — hardened runtime entitlements needed for notarization (allow-jit, allow-unsigned-executable-memory for .NET)

CI changes (.github/workflows/ci.yml)

  • App bundle: assemble EncDotNet.ChartViewer.app with proper Contents/MacOS/ structure; strip .pdb files (codesign rejects them as unsigned objects)
  • Signing: replace the old .dylib-only signing with full bundle signing — sign every Mach-O subcomponent with entitlements first, then seal the bundle; the main executable is signed as part of bundle sealing
  • Notarization: capture JSON output, assert status == "Accepted", and dump the notarization log on failure
  • Stapling: retry up to 5× with 30s delays; continue-on-error: true since Gatekeeper verifies online if the ticket is absent
  • Artifacts: each platform job now produces its own .tar.gz (macOS wraps the .app bundle); create-release consumes them directly, removing the ad-hoc archive loop
  • Permissions: add contents: read to build and publish jobs (least privilege)

@philliphoff philliphoff marked this pull request as ready for review April 11, 2026 22:46
@philliphoff philliphoff merged commit 754c5df into main Apr 11, 2026
6 checks passed
@philliphoff philliphoff deleted the copilot/fix-macos-application-signing branch April 11, 2026 22:52
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.

2 participants