SaaSHub helps you find the best software and product alternatives Learn more →
Gon Alternatives
Similar projects and alternatives to gon
-
Docker-OSX
Run macOS VM in a Docker! Run near native OSX-KVM in Docker! X11 Forwarding! CI/CD for OS X Security Research! Docker mac Containers.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
-
-
-
swift-corelibs-foundation
The Foundation Project, providing core utilities, internationalization, and OS independence
-
-
-
-
-
gow
Missing watch mode for Go commands. Watch Go files and execute a command like "go run" or "go test" (by mitranim)
-
-
-
-
gon discussion
gon reviews and mentions
-
Sickcodes/Docker-OS X: Run macOS VM in a Docker
It might be less effort to use something like this: https://gregoryszorc.com/blog/2021/04/14/pure-rust-implement...
Might even be able to modify `gon` to use that instead of Apple's `codesign` and then you'll have notarization too: https://github.com/mitchellh/gon
-
A Completely Open-Source Implementation of Apple Code Signing and Notarization
I’ve always used gon ( https://github.com/mitchellh/gon ) for this, which is open source golang, but I don’t think it supports mach-o embedding. I’ll have to try this tool out.
-
How do I bundle a Golang executable into a MacOS .app file?
There is no need for some special solution to pack your .app, you need to create .app directories, copy your binary, create Info.plist with metadata about your binary, icon, etc. I did this for a couple of apps and it is simple. It is another thing if you want to sign and notarize the binary, there are other tools for that, like https://github.com/mitchellh/gon.
-
Signing app for MacOS is like alien cryptographic language
I use gon to sign and notarize a DMG file. Once you set it up, it's a simple one-line command that will upload the DMG to Apple, await notarization, and give you back a DMG that's ready for distribution.
-
The Gates to Hell: Apples Notarizing
My advice from years of notarizing my apps is to make sure you do it at least once per day for each of your apps. If you only notarize once every release (say, every month or so), you are almost guaranteed to encounter some new cryptic error that you've never seen before, either due to some glitch in signing your app or frameworks, or else some server-side error such as new terms & conditions that you are being "encouraged" to agree to. It will take you hours to research and resolve them if they aren't spotted right away.
As others pointed out, https://github.com/mitchellh/gon is a great tool for doing this on your local machine (e.g., with a cron job). In addition, if you are building your app using a GitHub action (which I highly recommend if it is open-source), you can use my https://github.com/hubomatic/hubomat action to package and notarize a release in one shot. The sample/template app does this automatically on every commit as well as once per day: https://github.com/hubomatic/MicroVector/actions.
So when this fails from a scheduled job, you at least know that something has changed on the Apple side and can investigate that right away. And if it fails as a result of a commit, then at least you can start looking at what changes you may have made to your entitlements or code signing settings or embedded frameworks or any of the other million things that can cause it to fail.
-
A note from our sponsor - SaaSHub
www.saashub.com | 22 Jan 2025
Stats
mitchellh/gon is an open source project licensed under MIT License which is an OSI approved license.
The primary programming language of gon is Go.