Mac DMG: Developer ID signing + notarization

## Что это Release pipeline для macOS: 1. `electron-builder` собирает .app bundle (universal: arm64 + x64) 2. Все Mach-O бинарники подписываются `Developer ID Application: ROX.ONE LLC ()` через `codesign --options=runtime --timestamp` 3. Entitlements: hardened runtime, `com.apple.security.app-sandbox`, специфичные scopes для file-access 4. .dmg создаётся через `electron-builder dmg`, подписывается тем же ID 5. Notarization: `xcrun notarytool submit ... --wait` (≤ 15 min обычно) 6. Stapling: `xcrun stapler staple` встраивает notarization ticket 7. Verify: `spctl --assess --verbose=4 --type=open --context context:primary-signature` зелёный CI: secrets `APPLE_ID`, `APPLE_APP_SPECIFIC_PASSWORD`, `APPLE_TEAM_ID`, P12 cert через base64-secret. Компоненты: `.github/workflows/release-mac.yml`, `electron-builder.json` mac section. ## Зачем Unnotarized .dmg на современном macOS — это «App is damaged» dialog для 100% downloaders. Без signing+notarization Mac как platform недоступна для public release. Этот flow — обязательное условие GA на Mac. ## Источники вдохновения - [alienator88/Sentinel](https://github.com/alienator88/Sentinel) — macOS Gatekeeper/signing SwiftUI reference - [claration/Impactor](https://github.com/claration/Impactor) — Rust IPA-sideloading с signing patterns - [666OS/ClashMac](https://github.com/666OS/ClashMac) — SwiftUI macOS proxy с code-signing flow ## 🔗 Linear - [PZD-423](https://linear.app/kuhjie/issue/PZD-423) — backing ticket

Please authenticate to join the conversation.

Upvoters
Status

In Review

Board
♾️

Bugs, Fixes, Improvements

Date

About 19 hours ago

Author

agi

Subscribe to post

Get notified by email when there are changes.