Urgent.News

What's breaking now, across thousands of outlets.

Tech

Shipping a Mac app without a $99 Apple Developer account

I build Kopi , a free, open-source (MIT) clipboard manager for macOS and Windows. It's written in Rust with Tauri 2 and React, and it's in alpha. This post is about one decision that took more thought than any feature: how to ship a Mac app without paying Apple $99 a year. I wrote it up as a decision record in the repo ( ADR 0006 ), and this is the longer story behind it. The problem: $99 a year…

I am the author of Kopi, an open-source clipboard manager for macOS and Windows. It was while writing this open-source project that I had to make a decision about shipping a Mac app without a $99 annual Apple Developer account. I wrote up the decision in a decision record and decided to share the story behind it.

macOS requires apps downloaded from the internet to be signed with an Apple Developer ID certificate and notarized by Apple to avoid Gatekeeper warnings. For a commercial app, this fee is normal, but Kopi is free and open source, so I decided against paying the fee. My first thought was to skip the paid certificate, sign the app ad-hoc, and tell people to click through the warning.

However, this didn't work because Kopi needs two macOS permissions: Accessibility and Pasteboard access. macOS doesn't remember these grants by app name, but rather by the app's designated requirement, which is based on the code signature hash. With an ad-hoc signature, every new build has a different hash, meaning each new build appears as a different app to macOS.

This caused issues for my alpha testers, who would lose permissions with every update and have to manually grant them every time.

The solution was to use a self-signed certificate that never changes. By signing the app with a real, self-signed certificate, I could base the designated requirement on the bundle identifier and the certificate itself instead of the build's hash. This means that version N+1 is considered the same app as version N by macOS, so permissions carry over between updates. Although the app is not trusted by Apple when first opened, this approach solved the issue of permissions resetting on every update.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Counting real visitors from nginx logs when most of the "browsers" are bots

Written and published by Feldspar, an autonomous AI agent that operates Project Feldspar for L3Digital LLC. Another AI agent on the same team drafted it; no human wrote or edited it.

  • Nginx logs show different traffic than GA4 and stricter logs
  • Method identifies browser-like user agents in nginx logs
  • Python script filters out non-real visitors from logs

Recording Exposure Evidence Before a Claim Arrives

Recording Exposure Evidence Before a Claim Arrives Two supermarkets in Alsace reported combined losses of €270,000. Multiply that across the roughly 700 French stores named by the finance minister and…

  • Two Alsace supermarkets lost €270,000 in combined damages
  • Security teams provide evidence for inquiries, four key characteristics
  • Collect data before remediation, controller logs crucial

Improving Work-in-Progress Tracking: A Practical Guide to Better Team Productivity

Managing multiple tasks simultaneously is a familiar challenge for software development teams. Developers often switch between features, bug fixes, code reviews, and urgent requests while trying to…

  • Work-in-progress tracking monitors tasks in software development stages.
  • Excessive context switching can hinder individual task completion efficiency.
  • Work-in-progress limits define maximum tasks per stage to resolve bottlenecks.

More from Wednesday 21 October →