Skip to content

fix(dist): sign, notarize, and staple macOS desktop builds#96

Open
ibourgeois wants to merge 3 commits intomainfrom
codex/dist-63-signed-macos-builds
Open

fix(dist): sign, notarize, and staple macOS desktop builds#96
ibourgeois wants to merge 3 commits intomainfrom
codex/dist-63-signed-macos-builds

Conversation

@ibourgeois
Copy link
Contributor

@ibourgeois ibourgeois commented Mar 19, 2026

Closes #63

Status

Blocked pending Apple Developer organization enrollment approval.

Please do not merge this PR until Apple finishes verifying authority to sign legal agreements and the required GitHub repository secrets are configured. If it merges before that, the next release-driving merge will fail in the macOS signing workflow.

Summary

  • validate the Apple signing inputs required for trusted macOS releases
  • import a Developer ID Application certificate during release builds and harden NativePHP notarization failures
  • notarize and staple the app bundle plus the release DMG before uploading trusted assets
  • update the README and NativePHP release docs to describe the new macOS signing path and required GitHub secrets

Verification

  • ruby -e 'require "yaml"; YAML.load_file(".github/workflows/tagged-release.yml"); puts "tagged-release.yml ok"'
  • git diff --check

Required GitHub Secrets

  • MACOS_DEVELOPER_ID_APPLICATION_CERTIFICATE_P12_BASE64
  • MACOS_DEVELOPER_ID_APPLICATION_CERTIFICATE_PASSWORD
  • MACOS_NOTARY_APPLE_ID
  • MACOS_NOTARY_APP_SPECIFIC_PASSWORD
  • MACOS_NOTARY_TEAM_ID

Copilot AI review requested due to automatic review settings March 19, 2026 23:19
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades the macOS “Tagged Release” pipeline to produce trusted desktop release artifacts by enforcing Developer ID signing and Apple notarization, then stapling tickets to the resulting deliverables. It also updates user-facing and contributor documentation to reflect the new signed/notarized macOS release path and required repository secrets.

Changes:

  • Adds CI validation of required macOS signing/notarization secrets and imports a Developer ID Application certificate into a temporary keychain.
  • Enables signing/notarization in the macOS release build, verifies signatures, notarizes + staples the DMG (and staples the app bundle), and uploads DMG + SHA256 assets.
  • Updates README and NativePHP docs to describe trusted macOS releases and the new secret requirements.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
README.md Updates end-user messaging about trusted (signed/notarized/stapled) tagged macOS releases.
docs/development/nativephp.md Documents the new signing/notarization flow and required GitHub secrets for releases.
.github/workflows/tagged-release.yml Implements signing, notarization, stapling, and clearer failure modes for macOS tagged releases.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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.

dist: sign, notarize, and staple macOS desktop builds

2 participants