A Node.js library for codesigning Electron macOS apps and creating .pkg installers.
@electron/osx-sign is a Node.js library that simplifies code signing and installer creation for Electron applications on macOS. It automates the use of Apple's `codesign` and `productbuild` utilities, handling the technical requirements for distributing apps on the Mac App Store or via direct download. The tool integrates with popular Electron packaging pipelines like Electron Packager and Electron Forge.
Electron developers targeting macOS distribution, particularly those needing to sign apps for the Mac App Store or create .pkg installers. It's also useful for developers maintaining legacy Electron applications.
Developers choose @electron/osx-sign because it reduces the complexity of macOS code signing with sensible defaults, provides a programmatic API for automation, and maintains compatibility with older Electron versions. Its integration with Electron's ecosystem makes it a trusted, official solution.
Codesign Electron macOS apps
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works out of the box for most Electron apps by automatically detecting certificates and minimizing configuration, as stated in the README's philosophy of reducing manual effort.
Offers fine-grained control through options like per-file signing with `optionsForFile`, allowing customization for specific subresources such as applying --deep signing selectively.
Seamlessly integrates with popular Electron tools like Electron Packager and Electron Forge, reducing setup effort in existing packaging pipelines.
Maintains backwards compatibility with older, unsupported versions of Electron by allowing version specification, ensuring long-term project viability.
The command-line interface is labeled as legacy and lacks full API features, such as `optionsForFile`, forcing developers to use the JavaScript API for advanced use cases.
Signing for Mac App Store distribution can prevent local execution without manual entitlement adjustments, adding extra steps for testing as noted in the README's warning about `preAutoEntitlements`.
Requires Xcode, Apple developer certificates, and provisioning profiles, which involve additional setup, costs, and potential security concerns with third-party sources.