Why & How to Distribute Your App Outside the Mac App Store

Table of Contents
  1. You’re not alone
  2. Consider the App Store’s pros and cons
  3. Sell your products with FastSpring
  4. A FastSpring Guide: Sell licenses and integrate verification in your app in a day
  5. Free Code: How to protect your app with license codes
  6. Need help?
  7. Links & Resources
  8. Posts on the topic

Starting with a macOS app business is no easy task. It’s a trial by fire. A lot of questions cycle through your mind:

You’re not alone

That’s where I come in: I went through all this time and again. I asked around in the community and assembled best practices to distribute your macOS apps on your own. Lots of nice folks have solved these kind of problems in the past decades, and I helped them share their approaches.

I want to help you with your indie business, because I believe the community at large and all macOS users benefit when developers can operate more freely. The App Store is not a good choice for everyone, and you should not be intimidated by the prospect of figuring out things on your own. You can get rolling and become independent rather quickly and grow your passive income through indie macOS app development.

Here’s how.

Consider the App Store’s pros and cons

I collected honest arguments pro and con the Mac App Store you might want to read if you are note certain whether the App Store is for you or not. Direct customer contact is one very important motivator for me to favor direct sales over the App Store. Upgrade pricing and new business models might be worth considering, too.

I think it’s a very good strategy to sell your app on the Mac App Store and outside of it, in parallel. By being present on your page and in the App Store, you can continue market your app the same way, so no changes on that front.

Meanwhile, you increase optionality for customers: they can choose the store platform, and thus decide if they e.g. want to benefit from upgrade pricing in the future by buying from you directly. You also increase resilience for your business: if you are locked-out of the App Store, your business doesn’t crumble.

Sell your products with FastSpring

There are a ton of services to sell your app. To keep things simple, I recommend FastSpring. I have sold my own apps and ebooks on FastSpring stores for years. Here are some highlights of their service:

See a comparison of different e-commerce platforms if you want to have a look at different services and their type of services: from mere payment processors like PayPal, to shared e-commerce platform stores like Gumroad, to creating your own e-commerce platform with FastSpring, to using licensing-as-a-service providers.

This is how one of my customized FastSpring web stores look.

A couple of highlights of FastSpring for me:

A FastSpring Guide: Sell licenses and integrate verification in your app in a day

If you want to get started with a FastSpring integration on your own, I wrote a complete guide on the topic. This is especially handy if you don’t have the budget to hire me to help you with the setup.

This book teaches you all I know about

It also comes with a ton of contextual tips and bonus material like in-app purchase setups.

book cover

Make Money Outside the Mac App Store

Own your products and know your customers: sell outside the Mac App Store. In a few hours, you’ll have in-app purchases, a trial mode, and piracy protection all set. The book includes fully functional sample projects and code ready to be copied into your app.

  • 2nd edition: expanded to twice the features and details!
  • Swift 5
  • PDF, EPUB, and Kindle download
  • Lifetime updates

Free Code: How to protect your app with license codes

Example of a license code form

TrialLicensing: A set of libraries for macOS apps to implement time-based trial and license verification code in your app.

Here’s a short sample. (Click/tap to expand the steps.)

Step 1: Configure the library with a few simple steps during app launch.
import TrialLicense

let publicKey = [
        "-----BEGIN DSA PUBLIC KEY-----\n",
        // ...
        "-----END DSA PUBLIC KEY-----\n"
    ].join("")
let configuration = LicenseConfiguration(appName: "YourAmazingApp!", publicKey: publicKey)
let trialDuration = Days(30)

class AppDelegate: NSApplicationDelegate, AppLicensingDelegate {
    func applicationDidFinishLaunching(_ aNotification: Notification) {
        AppLicensing.setUp(
            configuration: configuration,
            initialTrialDuration: trialDuration,
            
            // Set up event callbacks:
            licenseChangeBlock: licenseDidChange(licenseInfo:),
            invalidLicenseInformationBlock: didEnterInvalidLicenseCode(name:licenseCode:),
            
            // Get notified about initial state to unlock the app immediately:
            fireInitialState: true)
    }
}
Step 2: React to change events.
func licenseDidChange(licenseInformation: LicenseInformation) {
    switch licenseInformation {
    case .onTrial(_):
        // Initial event, the default state of your app.
        // Changing back to trial may be possible if you support unregistering
        // form the app (and the trial period is still good.)
        return

    case .registered(_):
        // For example:
        //   displayThankYouAlert()
        //   unlockAppFunctionality()

    case .trialUp:
        // For example:
        //   displayTrialUpAlert()
        //   lockAppFunctionality()
        //   showRegisterAppPrompt()
    }
}

func didEnterInvalidLicenseCode(name: String, licenseCode: String) {
    // Show an alert, color the window red, or whatever you like
}

Need help?

If you still find yourself in a situation where you prefer someone with experience to set up the integration for you, I’m happy to help!

We can set up your very own FastSpring Store and integrate license activation into your app:

Posts on the topic

Dec 10 2019 Guilherme Rambo Was Temporarily Locked Out of His Apple Developer Account
Oct 24 2019 ExactScan Leaves the Mac App Store
Oct 7 2019 “Make Money Outside the Mac App Store” Second Edition Ebook Available
Oct 6 2019 Pros and Cons of the Mac App Store
Oct 3 2019 Comparison of E-Commerce Platform Alternatives to the Mac App Store
Sep 19 2019 Make Money Outside the MAS v2 Book Writing Stage is Done
Sep 6 2019 With DevMate Closing Shop, Here’s What You Can Do
Sep 4 2019 Live FastSpring Store Examples
Jul 29 2019 Paid Up Front: Two Perspectives to Make this Business Model Work to Your Advantage
Jun 28 2019 TableFlip Mac App Store Experiment Stats: Sources
Jun 13 2019 Imposing Bans and App Store Sanctions
Jun 5 2018 Panic’s New Pricing Model for Transmit on the Mac App Store
Feb 14 2017 Make Money Outside the Mac App Store – Swift 3 Update
Feb 12 2017 Register for My Webinar About Ditching the Mac App Store
Nov 18 2016 Dan Counsell’s Mac App Store Wish List
Oct 6 2016 Developer Documentation App Dash Removed from App Store – and No-One Can Do a Thing
Oct 4 2016 Apple Introduces Search Ads
May 6 2016 App Pricing and How to Make More Money
Feb 16 2016 DevMate is Completely Free Now
Feb 15 2016 Piezo Exits the Mac App Store
Jan 27 2016 Make Money Outside the Mac App Store now Available on Amazon
Dec 11 2015 Make Money Outside the Mac App Store
Sep 24 2015 Make Money with Mac Apps Outside the MAS: E-Book Prerelease, Need Feedback
Jun 13 2015 Freemium won’t solve your problems magically