Skip to content

chore(desktop): Developer ID signing + notarization - #254

Merged
vakovalskii merged 1 commit into
mainfrom
chore/desktop-signing-notarization
Jul 20, 2026
Merged

chore(desktop): Developer ID signing + notarization#254
vakovalskii merged 1 commit into
mainfrom
chore/desktop-signing-notarization

Conversation

@vakovalskii

Copy link
Copy Markdown
Owner

Enables real signing + notarization for the desktop DMG (v7.14.4 is the first signed & notarized release).

  • desktop/package.json — pin mac.identity to the Developer ID Application cert (team A933C2TJXU), given without the Developer ID Application: prefix (electron-builder rejects the prefix).
  • desktop/scripts/notarize.js — prefer a keychain profile (APPLE_KEYCHAIN_PROFILE → notarytool keychainProfile) so no app-specific password ends up in env/CI logs; env-var mode kept as a CI fallback.

Note on the timestamp gotcha: on the build machine HTTPS_PROXY is set, but codesign --timestamp ignores env proxies and hits timestamp.apple.com directly → "The timestamp service is not available" for every nested file. Fix: build over a VPN with the proxy env vars unset so codesign + notarytool share one direct route.

Verified: both arch .apps → spctl -t exec: accepted, source=Notarized Developer ID, stapled; both DMGs notarized (Apple Accepted) + stapled; a quarantined-DMG mount test confirms the app opens without a Gatekeeper warning.

🤖 Generated with Claude Code

- Pin mac signing identity to the Developer ID Application cert
  (team A933C2TJXU). Name is given WITHOUT the "Developer ID
  Application:" prefix — electron-builder rejects the prefix and
  picks the cert type automatically.
- notarize.js now prefers a keychain profile (APPLE_KEYCHAIN_PROFILE →
  notarytool keychainProfile) so no app-specific password lands in
  env/CI logs; falls back to APPLE_ID/APPLE_APP_SPECIFIC_PASSWORD/
  APPLE_TEAM_ID for CI.

Build (both arches, signed + notarized + stapled), with the corporate
proxy unset so codesign's timestamp requests reach Apple's TSA:

  cd desktop && env -u HTTPS_PROXY -u HTTP_PROXY -u ALL_PROXY \
    APPLE_KEYCHAIN_PROFILE=codbash-notary CSC_IDENTITY_AUTO_DISCOVERY=true \
    ./node_modules/.bin/electron-builder --mac --arm64 --x64

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vakovalskii
vakovalskii merged commit 3ff4eec into main Jul 20, 2026
6 checks passed
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