My App Store review timeline (mostly rejections)
# Lunar Lite
This was my first attempt at publishing on the App Store. I started earning money on my 🌕 Lunar Pro app for controlling native monitor brightness in May 2021. But after a few months I noticed some people were asking for a cheaper and more basic alternative to Lunar, that can also be installed from the App Store.
So I built Lunar Lite, an app that was supposed to dim monitor brightness by altering the Gamma curve to make the colors appear darker, and submitted it to the App Store on Nov 8, 2021 at 5:46 PM.
After about 2 hours and 30 minutes, on Nov 8, 2021 at 8:11 PM, I got a rejection.
There were two functionalities that the App Store review board rejected:
- Using a private macOS API to control the native brightness of the built-in MacBook/iMac display (
DisplayServicesSetBrightness
)- The reason given by the reviewer was that private APIs are not guaranteed to remain available and can break in subtle ways
- There's no other way to get this functionality so controlling native brightness had to be left out
- Showing a menu item that linked to my other app, Lunar Pro, with a description that said: For more advanced features and native brightness control, check out Lunar Pro
- The reason given was that I'm not allowed to link to other methods of payment for the app, even though I was linking to a completely different app
I appealed this, stating that my case falls under 3.2 Other Business Model Issues - 3.2.1 Acceptable:
3.2.1 Acceptable
(i) Displaying your own apps for purchase or promotion within your app, provided the app is not merely a catalog of your apps.
The appeal was rejected with the same generic message, so I just removed the menu item just to get it accepted.
This affected my business because of multiple reasons:
- Some people will hear about Lunar Pro from a friend, and go searching for it on the App Store, not knowing that advanced apps can only be distributed outside the App Store
- Those people downloaded Lunar Lite thinking it would control the native brightness, and then would leave a bad review when they noticed it only did software dimming, even if the description clearly stated that limitation
- I wanted to give a 30% discount on Lunar Pro licenses for those Lunar Lite users that found that they needed more features after buying the App Store app
- But that wasn't possible because I was forbidden from adding a coupon code link to Lunar Pro inside the app
Eventually I phased out Lunar Lite because bad reviews kept appearing from users that thought they were getting a good deal on the full-featured Lunar Pro app, and the App Store provides no way of handling those reviews.
All I could do was reply to those reviews with clarifications, but not a single user replied back or changed their review in any way.
# Lunar Lite v1 timeline
# rcmd
My second app for the App Store was a much simpler idea: an instant app switching method called rcmd that uses the Right Command key + the first letter of the app name
The execution of the idea was not so simple though because the App Store sandbox doesn't allow the usual way of listening to key events to differentiate between Left and Right ⌘ Command. I wrote at length on that here: Why aren't the most useful Mac apps on the App Store?
I submitted the first version of rcmd on Nov 18, 2021 at 1:37 PM and after 2 hours 26 min at Nov 19, 2021 at 4:03 PM the app was rejected.
The reason was the usage of yet another private API that I needed for opening Exposé on the windows of a single app.
Exposé preview
The rejection email
That wasn't such a big deal though, it was a useful functionality but I could live without it. I removed the feature and got the app accepted on my second attempt.
Because of App Store sandbox limitations, there was no way to switch to specific windows of an app (like for example, focus a specific PDF opened in Preview) so I got some bad reviews from people that expected that feature to be present.
Again, the App Store was completely unhelpful in getting rid of those reviews, even if they were clearly irrelevant because the user did not read the description before buying.
I tried both replying and reporting the reviews to App Store but nothing changed.
This was a paid app and planned to continue developing it and make a sizeable income on it, but people were reluctant to buying it without trying it first.
The missing support for free trials for one-time purchase apps on the App Store had the biggest impact on the business side. There is some support but it's awkward to both implement and present to users.
# “Free trial” not allowed anymore
Date Submitted: 24 October 2021 at 20:28
Apparently my Free trial available on lowtechguys.com/rcmd line is not allowed anymore in the Promotional text section.
It has been there for the last few months, already approved by other reviewers.
But when I tried to release v2.3.0
with updates for Stage Manager on macOS Ventura, the app was rejected on the basis that the trial line is not app metadata.
Guideline 2.3 - Performance - Accurate Metadata
We noticed that your app's metadata includes the following information, which is not relevant to the app's content and functionality:
Free trial is available on the official website at lowtechguys.com/rcmd
I tried explaining that it is the only way to let people know that the app can be tried for free but was further rejected. Resubmitting the app got the same rejection.
In the end I removed the line just to push the update to users. I will remove rcmd from the App Store in the near future and publish it independently on my website.
# rcmd v1 timeline
# Copyright Infringement on cover artwork
Date Submitted: 2 October 2024
The video I'm using to demo how rcmd works with Stage Manager, shows how I switch to a Music stage where I have Spotify in the foreground. And because I've got FKJ's VINCENT album in that window with the cover artwork obviously showing, I'm apparently at risk of copyright infringement.
The reviewer helpfully included a very low-res screenshot of where I'm doing that:
I removed that video as I didn't have time to edit it and resubmitted.
Another rejection came in as my other main video also switched to Spotify for a second and showed some cover artworks.
I didn't have that original video anymore, and Apple offers no way of downloading the video from App Store Connect.. whatever, deleted the video and resubmitted with only screenshots. I'll get out of the App Store soon anyway, I'm sick of this.
# Volum
My third attempt, and my first foray into multiplatform development (both iOS and macOS) was Volum, an app for controlling DIY smart home devices, that don't have an app or a visual way to control them.
It started as a volume control app for Yamaha AV Receivers, because I wanted to be able to press volume keys to control the sound from my Mac, instead of reaching for the AV receiver volume knob.
The first version of the app was rejected on legal matters, stating that I was not allowed to mention Yamaha's brand and products. So I removed mentions to Yamaha from the descriptions and screenshots, and advertised the app as a generic smart home control app.
I didn't see much hope in making money from this app, as it fills a very narrow niche, so this didn't impact my business.
# Volum v1 timeline
# Sub Sol
This was the most frustrating experience I had with the App Store review board, because I had no idea what they were asking from me.
Besides the fact that iOS apps take a lot longer to get reviewed (measured in days as opposed to hours for macOS apps), the reason for the rejection felt plain stupid: the app was too simple, and not worthy of being on the App Store.
I wrote some notes on my blog about the experience, which quickly became viral after publishing the link on Hacker News: App Store doesn't accept "too simple" apps — Alin Panaitiu
In the article you can find my 3 attempts at fixing issues and resubmitting the app, along with my appeal that changed nothing.
The app was my way of helping my brother earn a basic income until he gets to go on his first year of college in autumn.
The idea was that he would curate this list of underground parties and festivals instead of scrubbing dishes or working in retail for the summer. I needed the app on the App Store so I could monetise it easily.
The target audience wouldn't pay for such a thing on the web. It's a lot less friction to authorise a $1 app purchase with your face than inputting your credit card details on a web form, and I needed that convenience.
After a few days of the article being shared all over the internet, suddenly the app was changed to In Review without me doing anything, and accepted, just like that.
But it was already too late. The summer had passed, festivals were ending, there were less and less parties, and the idea of making money from this was fading. The college admission process and finding rent was also taking all my brother's remaining time by now so we made the app free for the moment. We'll try again next year.