Skip to content

Code-sign and notarize macOS builds #7

Description

@killerwolf

Downloaded builds currently trigger macOS Gatekeeper's "QuickToss.app is damaged and can't be opened" error on Apple Silicon, since the app isn't signed with a Developer ID or notarized (hardenedRuntime: true is set, but electron-builder skips signing entirely when no identity is found — confirmed in CI logs: skipped macOS application code signing ... 0 valid identities found).

This is a hard UX blocker for every new user, and it also puts the auto-update flow (#4 below, or wherever it lands) at risk — a downloaded update .zip carries the same quarantine flag as the initial download.

Current workaround

Users have to run xattr -cr /Applications/QuickToss.app manually after install.

Scope

  • Enroll in the Apple Developer Program if not already ($99/year)
  • Generate a "Developer ID Application" certificate, export as .p12
  • Add signing secrets to GitHub Actions: CSC_LINK, CSC_KEY_PASSWORD
  • Add notarization credentials: APPLE_ID, APPLE_APP_SPECIFIC_PASSWORD (or API key), APPLE_TEAM_ID
  • Set mac.notarize in package.json (or the newer electron-builder notarize config) and remove the gatekeeperAssess: false override once signing is verified
  • Confirm both x64 and arm64 builds launch cleanly on a fresh Mac without the xattr workaround
  • Verify the auto-update flow (download → quit-and-install) also works cleanly once signed

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions