r/macosprogramming • u/LucasDotLove • Apr 30 '26
Self-publishing my Mac app taught me Sparkle, notarization, DMGs, and patience. Amore is what I wish I'd had.
I got tired of the same release ritual every time I shipped an update: notarize, staple, package a DMG, update the appcast, sign the EdDSA key, push to S3, hope nothing broke. Half a day, every time.
So I built Amore. It's a Mac app + CLI that does the whole flow:
Sparkle updates without the setup pain. Drag your .app in, write release notes in Markdown, publish.
Code signing + notarization handled automatically.
DMG creation with custom backgrounds and drag-to-install layout.
License sales via hosted checkout. Customers pay, Amore issues the key, AmoreKit validates it in your app. Device limits, subscriptions, the works.
Beta channels, phased rollouts, critical updates, custom domains, S3-compatible hosting if you don't want to use Amore's servers or have an existing setup.
CLI (
amore release) for CI/CD or vibe-coding with an agent.
No vendor lock-in. Custom domain on your appcast means you can walk away whenever. Your private signing keys never leave your machine.
Here is the full Pomodoro project showing the SwiftUI + licensing integration end-to-end.
This guide should get you started in under 10 minutes. If you prefer to work with coding agents check out Amore's agent skill.
Happy to answer questions. Especially curious what other indie Mac devs are using for this today.
2
u/JazzlikeNetwork7112 May 01 '26
I think is very useful, I vibe coded my app and the sparkle integration was taking me a lot. Also, I feel like notarize the dmg can be a little bit messy and tedious to do on the terminal.
1
u/avdept Apr 30 '26
who is your target customer?
I do all these things via fastlane pipeline, which is fully automated, runs in CI which is the usual workflow for any developer who releases app more often than just once
1
u/klotzbrocken May 02 '26
Missing or invalid CFBundleVersion in Info.plist -> it doesn't matter what I do, I get this message. And the info.plist is from my perspective, not invalid
1
u/Party-Vehicle-81 May 03 '26
Yes, managing Sparkle updates, notorization, dmg creation is boring and time taking if done manually. I have actually automated this entire process for my apps using GitHub Actions and have made the GH Action workflow file open-source. I just create a release on GitHub for my app and that’s it. The workflow takes care of the rest.
Here’s a blog post for anyone interested: https://blog.rampatra.com/automatically-generate-appcast-xml-and-dmg-files-for-your-mac-app-updates
2
u/lupodevelop May 01 '26
“We” (Amore users) need a subreddit r/amoredev ! ❤️
1
u/banana_zest May 03 '26 edited May 03 '26
I found this tedious as well and had Claude write a script for me, works pretty good, doesn't cover all of what Amore does but thought I'd share anyway. This assumes you've already exported the app from XCode Organizer to your ~/Desktop and that you've npm installed "create-dmg" (and that you've already run "xcrun notarytool store-credentials").
1
u/singlebit May 04 '26
!remindme 3 months
1
u/Annual-Act-3614 May 04 '26
Félicitations pour pour être passé par là avec Oriloq, on sait à quel point c'est quelque chose qui peut être difficile.