The High Cost of Trust: The Friction of Distributing macOS Software
For the independent developer, the dream is often simple: write a useful utility, share it with the world, and perhaps earn a few dollars to cover the cost of coffee. However, as one developer recently discovered while building a utility for Claude Code profiles, the distance between "compiling a binary" and "distributing a usable app" on macOS is fraught with financial barriers and technical friction.
When distributing software on Linux, a simple chmod +x often suffices. On Windows, while SmartScreen may trigger a warning, users can typically click through it. But on macOS, the "quarantine" system—driven by Gatekeeper—creates a significant barrier for unsigned software. To provide a seamless user experience where the app doesn't trigger a "damaged" or "malicious" warning, developers are pushed toward the Apple Developer Program.
The Financial Barrier to Entry
For a hobbyist or a small-scale indie developer, the Apple Developer Program's annual subscription fee (currently $99 USD) can be a prohibitive "tax" on creativity. When a utility is released on a pay-what-you-want model via platforms like Itch.io, the potential revenue may not even cover a fraction of the annual membership cost.
This economic reality creates a divide between "Serious Users—"those with corporate backing or highly monetized apps—" and hobbyists. As noted in the original discussion, this pricing structure can feel less like a security measure and more like a way to gatekeep the ecosystem, pushing developers toward a model where only those who can monetize their software can afford to distribute it easily.
The Friction of Verification
Beyond the cost, the process of enrolling in the program is often a source of immense frustration. Modern identity verification frequently requires the use of a specific device (like an iPhone) or a webcam to capture a photo of a government ID.
Developers have reported a "horrible design" in this process, where poor lighting or lack of autofocus on built-in Mac webcams leads to repeated failures. In some cases, the only way to successfully complete the verification is to own an iPhone, further deepening the vendor lock-in. This creates a paradoxical experience: to give Apple money to distribute software on their hardware, you may first need to buy more of their hardware just to pass the ID check.
The Broader Landscape of Code Signing
While Apple is a frequent target of criticism, the issue extends across the entire desktop OS landscape. Code signing is often a fragmented and expensive industry:
- Windows: Many developers find that acquiring a digital certificate for Windows can be just as expensive, if not more so, than Apple's fee. Some providers charge over 200 EUR per year.
- Cloud Alternatives: While services like Azure Artifact Signing attempt to lower costs, they often impose geographic or organizational restrictions (e.g., restricting individual signing to the US and Canada), leaving EU-based individual developers in the cold.
This has led some to call for a "Let's Encrypt moment" for code signing—a move toward commoditized, accessible, and transparent identity verification that doesn't require annual rent-seeking fees.
Counterpoints: Security vs. Convenience
Not all developers and users view these restrictions as purely negative. Some argue that the friction is a necessary evil in an era of exponentially increasing malicious code.
"The amount of malicious code embedded in software now is going up exponentially... As a mac user, i want to know if the developer has paid a significant fee to get this software to me. It a useful signal for me."
From this perspective, the $99 fee and the ID verification act as a "velvet rope," ensuring that the developer is a real person with a traceable identity and a financial stake in their reputation. For the end-user, Gatekeeper provides a pause that forces them to consider the source of the software before executing it.
Navigating the Walled Garden
For those who cannot or will not pay the "Apple tax," there are a few workarounds, though they all compromise the user experience:
- Manual Overrides: Users can use the
xattrcommand in the terminal to remove the quarantine bit or navigate through System Settings to manually approve an unsigned app. - Disabling Gatekeeper: Advanced users can run
sudo spctl --master-disableto turn off Gatekeeper entirely, though this is a "big hammer" approach that reduces system security. - Alternative Distribution: Using package managers like Homebrew can simplify installation for technical users, though it bypasses traditional monetization paths like Itch.io.
Ultimately, the struggle to distribute a simple Go binary on macOS highlights a fundamental tension in modern computing: the balance between a secure, curated ecosystem and the open, experimental nature of independent software development.