CurrentKey Stats · maker stories · product rants

Key takeaway from developing for the Mac App Store: it’s unreliable

Last May I launched my Mac app, CurrentKey Stats, which helps you keep track of how you spend time across Spaces (virtual desktops) and apps, as well as navigate between your Spaces.

It was not always a foregone conclusion that I’d distribute the app through the App Store. In fact — I had round-tripped the entire stack for delivering outside the Store (including updates through Sparkle and serverside payments). In the end, I decided against it largely because of the friction caused by scary warnings from Chrome and MacOS for software downloaded from the internet (even if the software was notarized).

Note: this entire post probably only applies to the Mac App Store, not iOS App Store.

As someone who genuinely loves writing Swift code and making stuff, my relationship with Apple is important to my ability to continue doing what I love. Ultimately though, my responsibility is to advance what’s in my users’ interests, and – from my experience, when Apple is being slow, the most reliable way to speed them up is by taking your opinion public, so let me tell you the top pros and cons of developing for the Mac App Store.

Pro #1: Essentially free QA

A developer account costs $100/year to keep active, for that – you get a set of trained eyes to check that your app behaves as advertised. It’s not perfect, but it’s worth at least $100/year.

Pro #2: A big credibility boost in the eyes of customers

At several points over the course of developing the app, especially when I was targeting out-of-store distribution) friends made it clear to me they wouldn’t personally download apps from a website. This, coupled with the negative language from Chrome and Mac around website-delivered software made it a major factor. The ability to seamlessly push updates to users (vs a more cumbersome Sparkle method) means they’d come more frequently, which would also boost credibility (but… see Con #2).

Pro #3: Easier fulfillment/payments, at least in theory

Simply put: implementing your own fulfillment generally requires setting up server side logic for receipts and user accounts, which for a team of one – is a major time suck (I’d rather spend that time making my app better!). 30% is a major cut of sales, but theoretically it allows for a far smoother experience for the user (who doesn’t have to pull out a credit card or log in to PayPal, etc).

Con #1: Broken APIs burning developers

Example 1:
My first experience of this came early and was flabbergasting. In 2018, Apple brought the Ask for Rating API to macOS. It’s a simple API call, taking no arguments (impossible to screw up). What’s supposed to happen is, when it’s called a box with “Enjoying CurrentKey Stats?” shows up with an option to click 1-5 stars and submit. Simple. What developers were finding was that it would ask “Enjoying (null)?”. So, precisely when devs wanted to ask users to rate their app, a bug would surface (not their fault but users didn’t know that). This stayed broken for over a month and was fixed only after the press reached out about it. The lack of urgency around fixing such a simple bug was disturbing to me.

Very poor timing for a bug!

Example 2:
Unbelievably, fulfillment has been a mess. I implemented In-App-Purchases, and I’ve had as many complaints about StoreKit-related issues as any other thing about my app. From purchase restoration suddenly not working, to the simple inability to purchase the IAP — emails from users have steadily flowed in.

When you encounter bugs like this, there’s very little you can do — you are completely reliant on Apple to care enough. It got to the point where I just yanked out the IAPs and made it all free.

Con #2: Unreliable App Review process

I thought that it would be less cumbersome to deliver app updates through the App Store. I’m currently about three weeks into a very frustrating waiting game. On December 30 my app entered into the “In review” status. Never has my app taken longer than a couple days to review and usually just a few hours. My last approval came within a couple hours (and happened right before the holiday black out period that hits the App Store each year). I’ve expedited the review and talked to support reps and even had members of the press reach out to Apple, yet it’s still stuck and no real info has been given on why. Maybe the chairs are being shuffled over there, or it’s a small review team that took a long holiday break. But this has been very demotivating for me as far as continuing app development. Getting the app rejected would be way better. That’s not what this is, the app is just in purgatory and users aren’t getting bug fixes.

Con #3 lack of Mac App Store ads and affiliate links

In 2018, Apple removed its affiliate link program for iOS and Mac apps. It had given bloggers an incentive to cover new apps from the App Store. Since then, bloggers only have an affiliate business model around promoting apps from outside the App Store. You are, as a developer, beholden to the App Store review team to be featured in the Store, which is unreliable and not a healthy power dynamic.

Meanwhile, the Mac App Store does not let developers advertise in the store. This makes it even harder for a new app to get discovered.