Skip to content

Add production macOS signing and notarized releases - #553

Merged
enaboapps merged 4 commits into
mainfrom
agent/macos-production-signing-552
Aug 9, 2026
Merged

Add production macOS signing and notarized releases#553
enaboapps merged 4 commits into
mainfrom
agent/macos-production-signing-552

Conversation

@enaboapps

Copy link
Copy Markdown
Contributor

Closes #552

Summary

  • add an Apple Silicon release workflow using an ephemeral GitHub-hosted keychain, Developer ID signing, and App Store Connect API-key notarization
  • verify release tag/version consistency, nested signatures, hardened runtime, secure timestamps, architecture, Gatekeeper, and stapled tickets before publishing
  • add the production environment and protected release-tag policy while preserving unsigned PR/main CI and the local Accessibility signing identity
  • document certificate creation, GitHub secrets, release recovery, and rotation

Validation

  • npm run lint
  • npm test (40 tests)
  • npm run build
  • cargo fmt --manifest-path src-tauri/Cargo.toml --check
  • cargo clippy --locked --manifest-path src-tauri/Cargo.toml --all-targets -- -D warnings
  • cargo test --locked --manifest-path src-tauri/Cargo.toml (131 tests)
  • unsigned Apple Silicon .app and DMG bundle build
  • bash -n scripts/verify-macos-release.sh
  • actionlint .github/workflows/release-macos.yml

Account setup status

The GitHub production environment, deployment policies, telemetry endpoint, and release-tag ruleset are configured. Apple still reports the renewed Developer Program membership as expired, so the Developer ID certificate, notarization API key, and remaining environment secrets cannot be provisioned until Apple activates the membership.

@enaboapps
enaboapps marked this pull request as ready for review August 9, 2026 16:56

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This review was skipped because it would exceed your organization's monthly flex usage limit. Raise the limit in billing settings or wait until the next billing period resets limits.

@enaboapps

Copy link
Copy Markdown
Contributor Author

Implementation validation is green on the latest head:

  • frontend: passed
  • native macOS app/DMG: passed
  • native Windows UIAccess package: passed
  • local Node 24 and Rust 1.97.1 checks: passed
  • local unsigned Apple Silicon app/DMG build: passed
  • actionlint and release verifier shell syntax: passed

Two external prerequisites remain:

  1. Apple Developer currently still reports this team membership as expired and does not load the Certificates controls, so a Developer ID Application certificate and App Store Connect notarization key cannot yet be issued.
  2. Greptile skipped its review because the organization monthly flex usage limit is exhausted. A 5/5 score cannot be produced until the limit is raised or resets.

The GitHub production environment, main/v* deployment policies, telemetry endpoint, and protected v* tag ruleset are already configured. No release tag has been created.

@greptile-apps

greptile-apps Bot commented Aug 9, 2026

Copy link
Copy Markdown

Greptile Summary

This change adds a production macOS release path for Apple Silicon builds, Developer ID signing, notarization, release verification, checksums, and GitHub Release publishing. The release checks application version alignment, signing identity, hardened runtime, architecture, Gatekeeper acceptance, and notarization tickets before assets are published.

Confidence Score: 5/5

Safe to merge; no blocking failure remains.

No blocking failure remains.

T-Rex T-Rex Logs

What T-Rex did

  • I examined the macOS release workflow and verification script to trace how app and DMG notarization checks are wired.
  • I ran a DMG-only fixture with no app ticket, and verification stopped at the app-ticket validation with exit 65.
  • I ran the fixture with an app ticket provided by the build path and with DMG stapling, and both app and DMG validations plus Gatekeeper checks completed successfully.
  • I compared fixtures and confirmed that with the app ticket supplied by the build path, the unchanged DMG workflow passes both validations as shown in the after-path log.

View all artifacts

T-Rex Ran code and verified through T-Rex

Reviews (2): Last reviewed commit: "security: pin production release actions" | Re-trigger Greptile

Comment thread .github/workflows/release-macos.yml Outdated
@enaboapps

Copy link
Copy Markdown
Contributor Author

@greptileai

@enaboapps

Copy link
Copy Markdown
Contributor Author

@greptileai review

@enaboapps
enaboapps marked this pull request as draft August 9, 2026 19:32
@enaboapps
enaboapps marked this pull request as ready for review August 9, 2026 19:32
@enaboapps

Copy link
Copy Markdown
Contributor Author

@greptile-apps please run a full review on latest head 5dbb2ec and update the confidence score.

@enaboapps

Copy link
Copy Markdown
Contributor Author

@greptileai review

@enaboapps
enaboapps merged commit 9379c21 into main Aug 9, 2026
4 checks passed
@enaboapps
enaboapps deleted the agent/macos-production-signing-552 branch August 9, 2026 20:12
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.

Add production macOS signing and notarized releases

1 participant