Code signing is optional. Your app builds and runs without it. Unsigned apps will show OS warnings ("unidentified developer" on macOS, SmartScreen on Windows).
- Apple Developer Program membership ($99/year)
- Developer ID Application certificate
- App-specific password for notarization
- Open Keychain Access on your Mac
- Find your "Developer ID Application" certificate
- Right-click > Export > save as
.p12file with a password
base64 -i certificate.p12 | pbcopy| Secret | Value |
|---|---|
CSC_LINK |
Base64-encoded .p12 certificate |
CSC_KEY_PASSWORD |
Password you set when exporting the .p12 |
APPLE_ID |
Your Apple ID email |
APPLE_APP_SPECIFIC_PASSWORD |
App-specific password (create here) |
APPLE_TEAM_ID |
Your Apple Developer Team ID |
electron-builderdetects theCSC_LINKenv var and signs the app automatically- It also notarizes the app with Apple using the
APPLE_*env vars - Notarization is required for macOS Catalina (10.15) and later
EV certificates eliminate SmartScreen warnings immediately.
- Purchase an EV code signing certificate from a provider (DigiCert, Sectigo, etc.)
- Export the certificate as
.p12/.pfx - Base64 encode:
base64 -i certificate.pfx | pbcopy
New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=My App" -CertStoreLocation Cert:\CurrentUser\MyThis won't eliminate SmartScreen warnings but is useful for testing the signing flow.
| Secret | Value |
|---|---|
CSC_LINK |
Base64-encoded .pfx / .p12 certificate |
CSC_KEY_PASSWORD |
Certificate password |
electron-builderdetectsCSC_LINKon Windows and signs the.exeand NSIS installer- EV certificates provide immediate SmartScreen trust
- Standard certificates build trust over time based on download count
codesign --verify --deep --strict dist/mac-arm64/My\ App.app
spctl --assess --type execute dist/mac-arm64/My\ App.appRight-click the .exe > Properties > Digital Signatures tab.
If you skip code signing entirely:
- macOS: Users must right-click > Open > Open to bypass Gatekeeper
- Windows: SmartScreen shows "Windows protected your PC" warning, users click "More info" > "Run anyway"
- Linux: No signing required
The CD workflow handles this gracefully — if signing secrets aren't set, electron-builder builds without signing.