How to Sell Apps Outside the Mac App Store in 3 Steps

November 16th, 2017
Estimated read time: 5 minutes, 0 seconds

We have invited a guest, Christian Tietze, to contribute to the FastSpring blog. Christian used his own experience selling outside the Mac App store to write an informative guide on the topic. 

Selling your apps outside the Mac App Store is easy once you get the grip. It’s just a bit complicated to get the necessary components to work together smoothly the first time. You have to setup everything the App Store offers once for each of your apps:

  • Updates,
  • a paywall, like requiring a license code, and
  • a storefront.

Developing this on your own can be intimidating. You don’t want any of these components to fail, ever.

I went through this a couple of times and always missed bullet-proof instructions. That’s when I wrote the guide called “Make Money Outside the Mac App Store” (but more on that in a bit).

The Mac App store promises peace of mind and a trusted system – but from a customer’s perspective, it only helps find and buy a product you already know exists. The Mac App Store is not great for discovering software, especially if it’s new and the developer not well-known.

Things change with a fan base or lots of tech press coverage. You have to hustle and do all the marketing on your own to get there, though. So where’s the point in giving away 30% + VAT for the warehouse that is the Mac App Store?

There are compelling reasons to sell outside the Mac App Store:

  • independence,
  • higher profit margins,
  • you can know your customers,
  • offer free trials,
  • offer upgrade pricing,
  • get feedback via e-mail, not via ratings on the app store.

The pros far outweigh the uncertainties. Uncertainty depends on how little you know about a particular solution. By following the tested steps outlined below, many of the uncertainties will already vanish and you’ll just have to implement it.

Step 1: the Store

You need FastSpring for two things:

  1. Everything related to receiving payments. They handle VAT and different currencies.
  2. Order fulfillments – actions that automatically take place after a purchase is made, so you don’t have to send license codes manually.

You can setup a product and accept payments in mere minutes. FastSpring’s solution is very customizable and you can match the look of your website.

The good news: You do not need to add any line of code to your app to sell it.

I recommend you take the time to offer a way to buy a license from within the app, though. This can increase conversion from free to paid users as my research indicates.

The FastSpring SDK helps tremendously to integrate an in-app store to purchase the license without having to hit your website first. This works for classic consumables or feature additions like in-app purchases as well.

To protect your app against piracy, locking the functionality with license codes is a well-established mechanism.

FastSpring offers various mechanisms for license code generation as part of its order fulfillments. I think one is superior: CocoaFob.

Step 2: CocoaFob for license codes

Integrating CocoaFob license verification in your app is easy. The code is well-maintained and simple. It’s just a matter of adding a few files from the repository to your project and you’re ready to verify license codes from user input.

FastSpring offers the other half of the process: generating CocoaFob license codes after purchases. Your app will use a public key for verification while FastSpring owns the private key for generation. You encode information like user name and app name after checkout and decode the info in your app. Then you check if that worked and if there’s a match.

I tend to favor a template of name,app, which results in Christian Tietze,TableFlip, for example. E-mail instead of user name works just as fine. This gives each license code a degree of personalization.

Bonus Step: Trial Modes

While press coverage can offer important social proof, most users prefer to test-drive an app themselves before they buy. Doesn’t work on the Mac App Store. But it works for your app when you offer downloads on your own.

Offering a trial or demo version which subtly prompts users to buy the app while offering a good in-app purchase experience can hook and convert users to customers very effectively.

You set this up by storing the date of first launch in a secure place and check if 30 days have passed. If that’s the case, you lock the app until the user enters license information or buys one from within the app.

Step 3: Providing Updates

One word: Sparkle. It’s the standard way to provide updates for your software. The code is well maintained, too. Integrating it takes a few minutes to test everything works. Afterwards, you’re all set. Just make sure you have an update server that supports HTTPS to prevent man-in-the middle-attacks and make your overall life easier for OS X 10.11 El Capitan and newer.

Wrapping it up

All you need is an e-commerce platform, some way to secure your app against piracy, and automatic updates. Offering users a time-based trial is another key ingredient to help spread the word about your software. Once you figured out how to integrate these components in your app, you’re ready to sell outside the Mac App Store on your own.

Still, getting the code bulletproof can be a lot of work the first time. You don’t want to have license code verification errors or trials that expire too soon. I know how afraid I was to break anything when I first released an app on my own.

That’s why I wrote a guide that saves you days of research and testing and comes bundled with drop-in code files and unit tests for your app. You’ll be guided through the entire setup process, from FastSpring product to license verification in a time-based trial app.

You can order a print copy of his book from amazon.

Try FastSpring

Get a free account and see why FastSpring is the ecommerce partner of choice for software providers around the world. Try our full-service ecommerce solution today to unlock revenue growth for your online company.