gon is a simple, no-frills tool for signing and notarizing your CLI binaries for macOS. gon is available as a CLI that can be run manually or in automation pipelines. It is also available as a Go library for embedding in projects written in Go. gon can sign and notarize binaries written in any language. Beginning with macOS Catalina (10.15), Apple is requiring all software distributed outside of the Mac App Store to be signed and notarized. Software that isn't properly signed or notarized will be shown an error message with the only actionable option being to "Move to Bin". The software cannot be run even from the command-line. The workarounds are painful for users. gon helps you automate the process of notarization.
Features
- Code sign one or multiple files written in any language
- Package signed files into a dmg or zip
- Notarize packages and wait for the notarization to complete
- Concurrent notarization for multiple output formats
- Documentation available
- Stapling notarization tickets to supported formats (dmg) so that Gatekeeper validation works offline.