Sell your Mac app with built-in licensing

Keys, checkout, a customer portal, and a Swift SDK. Ready in an afternoon.

Watch licensing go into a real Swift app, start to finish, in about three minutes.

What's included

License key generation Unique keys created on every purchase or subscription.
In-app checkout Customers pay in a sheet inside your app and the license activates itself.
Hosted success page Customers see their key immediately after checkout.
Email delivery Keys and receipts sent automatically.
Customer portal Self-serve access at my.amore.computer/portal.
Swift SDK Drop-in AmoreLicensing package for your app.
Activation & validation Server-side checks so keys can't be shared without limit.
Merchant of record Optional. Stripe takes on VAT and sales tax for you.

Built for trust

Most license SDKs phone home on every launch and bind hardware with checks that take minutes to bypass. AmoreLicensing is different.

Signed JWTs Every license is a cryptographically signed token. Tamper with it, the signature breaks.
Hardware-bound The device ID is baked into the signed token. Copy it to another machine, it stops working.
Offline-first Validation happens locally on the customer's Mac. No server round-trip per launch.
Outage-resilient Configurable grace period keeps customers running if the licensing server is briefly unreachable.
Replay-proof Client-generated nonces signed into each token prevent MITM and replay attacks.

For the full technical breakdown, see Architecture & Security.

A few lines of Swift

Initialize the SDK with your public key, then activate a license when the customer enters their key.

import AmoreLicensing

let licensing = try AmoreLicensing(publicKey: "your-public-key")

try await licensing.activate(licenseKey: "XXXX-XXXX-XXXX")

AmoreLicensing is @Observable, so SwiftUI views react automatically when the license status changes.

switch licensing.status {
case .valid(let license):       // unlock the app
case .gracePeriod(let license): // expired but within grace window
case .invalid:                  // show paywall
case .unknown:                  // no license stored
}

See the licensing guide for the full integration.

Sell without sending anyone to a browser

The usual way to sell a Mac app outside the App Store asks a lot: leave the app, pay in a browser, wait for an email, find the key, paste it back. Four chances to lose the sale, and the ones who get through still write to you when the email lands in spam.

AmoreCheckout collapses that into a sheet. Your customer clicks buy, pays without leaving your app, and the license activates itself. If the app quits mid-purchase, one call at launch resolves it, and nobody gets charged twice.

import AmoreCheckout

let checkout = AmoreCheckout(licensing: licensing)

One modifier turns any button into a purchase. The license activates itself when payment clears.

@State private var buying: Product?

Button("Buy Pro") { buying = product }
    .amoreCheckout(item: $buying, checkout: checkout)

Bring your own paywall, success screen, or container, or hand the URL to the browser instead. See in-app purchases.

Stripe can be your merchant of record

You don't need Paddle, Lemon Squeezy, or any other reseller to get out of tax paperwork. Switch on Stripe Managed Payments and Stripe becomes the merchant of record for your sales: it calculates, collects, and remits VAT and sales tax worldwide, and takes on fraud and chargebacks with it.

It's a setting in your own Stripe account, and Amore licensing works with it out of the box. If you'd rather sell directly and handle tax yourself, that works too. Nothing in your app or your integration changes either way.

Pricing

Start for free, and only pay in months you earn over $1,000. After that, it's 1.5% of your total monthly tracked revenue (MTR).

Free Up to $1K in MTR
1.5% of MTR after $1K

License purchases are processed through your own Stripe account.

How it fits with Amore+

Licensing is its own product, independent of Amore+. Activate it on its own with the 1.5% usage fee, no other subscription required.

Pairs well with Amore+ if you also want unlimited releases, no DMG watermark, custom domains, and analytics for distributing your app.

Enterprise

Custom tailored to your needs

For high-volume apps or unique requirements. Includes custom integrations, dedicated onboarding, priority support, and flexible billing terms.

Get in touch to discuss your needs.

Loved by developers

  • I used Amore to scale SlapMac to 100K downloads in 3 months.

    Notarisation, over-the-air updates, analytics, and a lot more.

    Tonino Catapano Tonino Catapano SlapMac SlapMac
  • After adding Amore to my stack, I did 20 mac updates in the last 8 weeks.

    Just delightful to use!

    Naveen Naidu Naveen Naidu Monologue Monologue
  • It was easier and more pleasant to integrate Amore than Apple’s StoreKit.

    It was genuinely a great experience. Thanks again for building all my dream features at lightning speed!

    Simon Lou Simon Lou Billy Billy
  • I highly recommend Amore if you want to build macOS apps without going through Apple’s annoying App Store approval dance (and 30% tax!)

    It works great for WhyFi - very easy to do OTA updates

    James Potter James Potter WhyFi WhyFi
  • Amore looks incredible and it’s so easy to setup!

    I had my own licensing and update server written in Go, and I binned it.

    Daniel Pinto Daniel Pinto Barflare
  • Okay Amore is so goated, crazy how easy it is to launch a macOS app

    (not sponsored lol, just a big fan)

    Kamil Kamil Pretty Timezones Pretty Timezones
  • Finally tried out Amore yesterday – it helps me distribute macOS apps outside the App Store.

    It makes it so easy – handling updates, DMGs, notarisation, and hosting the download files.

    Shout out for building such a high-quality service!

  • You can just build things, ship things, and make money.

    No Apple review or Apple tax and still get paid.
    Just have fun.

    The onboarding is so nice. Great example on how to play with Apple hardware.

    Hope it inspires more people.

  • All my apps are now distributed via Amore 🔥

    Fauzaan Fauzaan Pluk Pluk
  • I actually pulled a Mac app out of app review and using Amore now.

    Dan Green Bubbles Green Bubbles

Built with Amore

Monologue iReal Pro Juicy SlapMac WhyFi Markdown Preview Picmal Tribune Doorry Maki Kompressor Pluk Billy Cliptop Browski Symbol Browser PrettyTimezones Footlight MarketHours Amore Peek Green Bubbles Git Directory Download Coca Polished Pomodoro KeyStash Palette