Desktop signing and distribution
Prepares platform-appropriate signatures and installers while making actual distribution checks explicit.
desktop-signing-distribution
See how it helpsWhen is it useful?
Use when shipping desktop installers outside the development machine.
What does it help you do?
- Checks nested signing order, required entitlements and notarization evidence.
- Validates Windows signatures and timestamps with installation-scope requirements.
- Reviews uninstall behavior and ownership of registered file associations.
Try asking this
Prepare a signed macOS installer and report separately signing, notarization and clean-machine launch evidence. Install on a clean test machine and exercise a permission-requiring feature. Record actual operating-system checks separately from successful artifact creation.
Detailed documentation
Read the skill’s original instructions, examples and checks in their authored language.
Show less
Signing & Platform Distribution
Unsigned or improperly signed desktop applications trigger alarming OS gatekeeper blocks ("App is damaged and can't be opened" on macOS, SmartScreen warnings on Windows) and break auto-updaters (Squirrel.Mac / NSIS). Treat signing, entitlements, and platform metadata as core architecture requirements.
macOS Code Signing, Hardened Runtime & Notarization
- Inside-Out Signing Order:
- Every executable binary,
.dylib,.nodenative addon, and embedded sidecar inside.app/Contents/Resourcesor.app/Contents/Frameworksmust be signed with a valid Developer ID Application certificate and secure timestamp before signing the outer.appbundle. Modifying any file inside.appafter signing invalidates the seal immediately.
- Every executable binary,
- Hardened Runtime & Minimal Entitlements (
entitlements.mac.plist):- Apple notarization requires Hardened Runtime (
--options runtime). Request only the entitlements your runtime genuinely needs:- Electron V8 JIT requires
com.apple.security.cs.allow-jit(and helper renderer entitlements). - Loading unpacked third-party
.nodeaddons may requirecom.apple.security.cs.allow-unsigned-executable-memoryordisable-library-validation(only when addons are not signed by the same Team ID).
- Electron V8 JIT requires
- Include clear
NS*UsageDescriptionstrings inInfo.plistwhenever accessing protected folders, microphone, camera, or automation events.
- Apple notarization requires Hardened Runtime (
- Notarization & Stapling (
notarytool+stapler):- Submit the signed
.dmg/.zip/.pkgto Apple's notarization service (xcrun notarytool submit --wait), inspect the JSON log on any rejection, and staple the ticket (xcrun stapler staple) to the.dmg/.appso Gatekeeper verification succeeds even when the user is offline.
- Submit the signed
Windows Authenticode, SmartScreen & Installer Formats
- Authenticode Signing with Timestamp Server:
- Sign both the inner application
.exe(and any custom native.dll/sidecar binaries) and the outer installer (NSIS .exe,MSIX, orMSI) using SHA-256 (fd sha256) and an RFC 3161 timestamp server (tr http://timestamp.digicert.com).
- Sign both the inner application
- Per-User vs. Per-Machine Installation Paths:
- Default to per-user installation (
%LOCALAPPDATA%\Programs\<App>) when seamless background auto-updates without UAC Administrator elevation prompts are desired, or document explicit UAC behavior for machine-wide (%ProgramFiles%) enterprise MSI/MSIX deployments.
- Default to per-user installation (
- Clean Uninstall & File Association Hygiene:
- Register custom URL schemes (
myapp://),PATHshims, and startup entries cleanly so uninstalling the application removes its registry keys and shortcuts without deleting the user's projects unless explicitly requested.
- Register custom URL schemes (
Included files 1
SKILL.md
About this skill package
desktop-signing-distribution
desktop-signing-distribution: Build desktop apps with reliable native boundaries, local data, process lifecycle, packaging and update behavior.
Show less
desktop-signing-distribution
desktop-signing-distribution: Build desktop apps with reliable native boundaries, local data, process lifecycle, packaging and update behavior.
Includes the complete skill and its supporting files (1 files). The exact authored scope is preserved below.
Original skill description (source language)
Use when configuring macOS or Windows desktop packaging, code signing, Hardened Runtime entitlements, Apple notarization, Windows Authenticode/MSIX signing, or OS permission prompts.
Install the skill, review its source and trust settings, then enable it for the relevant project or agent.
Requirements
- Orqestria installed on your computer.
