How Apple Continuously Screws Developers and Doesn’t Follow Its Own Rules
I’m waiting anxiously to hear if my app will be approved. Why am I anxious? Because Apple routinely rejects me for tiny things. Getting approved the first time is a cause for celebration! It happens so rarely.
Just got an email from Apple. Let’s see… Rejected. Again. It’s now happened twice. I’ve spent the better part of my day trying to figure out what’s wrong, fixing it, and resubmitting.
I’ve been building iOS apps for nearly 5 years now. According to App Store Connect, I’ve sold $904,000 worth of product and earned about $624,000 for myself. That means I’ve paid Apple over $280,000 in commissions. Hurray for me. I’ve made a living thanks to Apple. I’m still going to complain because Apple’s actions are getting out of hand. Spotify recently complained about similar issues. I wanted to add my voice to that debate because Spotify isn’t wrong and Apple now has an incredible amount of power over companies that do business through the App Store.
As of Q4 2018, 44.8% of all US smartphones run iOS and growing. That means in a few months, it’s possible that Apple will be gatekeeping what software a majority of the United States can have on their phone. I understand where Apple is coming from—they want to make sure that software is safe and the experience is positive. That’s noble and it’s worked pretty well.
But you know what’s not fair? When Apple routinely violates its own rules that it subjects all other companies to. Most recently, I was rejected because of the wording of my subscriptions terms. Apple requires you have a disclosure similar to this on your subscription page:
Payment will be charged to your Apple ID account at the confirmation of purchase. The subscription automatically renews unless it is canceled at least 24 hours before the end of the current period. Your account will be charged for renewal within 24 hours prior to the end of the current period. You can manage and cancel your subscriptions by going to your App Store account settings after purchase.
This is what I had:
I’ve had this exact text approved in another app at least twice. In fact, I actually chose this wording because I saw how elegant it looked in a top charting app. Apparently, it’s not allowed. Thus, rejection.
These subscription terms are super important to Apple. They’ll reject an entire build if you don’t have the perfect wording. Why? Because they want to make sure consumers fully understand what they are signing up for. The last thing Apple wants is a reputation for having sketchy subscription pages that trick people into subscribing. I admire that.
Except, for some reason, Apple doesn’t feel the need to include these terms in their Apple Music or Apple News subscription pages. I assumed they’d want to lead by example. It must be nice not having to go through App Review.
I fixed my subscription terms to bring them in compliance. I resubmitted … and rejected again. What’s the problem this time? The pricing for my yearly subscription has to be the largest element in the subscription prompt—not the free trial.
The screen on the left got rejected. The screen on the right got accepted.
I kind of understand this—again, Apple errs on the side of caution. Let’s make sure the consumer knows exactly what they are purchasing. Scroll up and check the prompts in Apple News and Apple Music—notice something? Again and again, Apple enforced rules on developers that it itself does not obey. How is this fair?
It’s now two weeks later. The above build was eventually approved. It may have taken me 48 hours (and who knows how much lost revenue) but it’s available for download now. Originally, I wrote the first half of this article out of frustration—Apple had left me feeling so helpless and angry that I felt the need to vent my thoughts out to the world and find out if I’m the only one who thinks this whole process is crazy. Well, I decided to come back and finish the article because it’s happened again.
This time, I was rejected because the reviewer had an issue with Facebook login. For reference, my app optionally allows Facebook login. You can also authenticate Instagram accounts using Facebook. This functionality is integral to the app and it’s been in place for months now. Thousands of users have signed up with it.
After hearing back from the review team that it wasn’t functional, I tested it on the iPad simulator, my iPhone, and ensured that I hadn’t received any support tickets from users about it. I checked Facebook’s platform status and everything was up and running.
Normally, the reviewers don’t even test Facebook login—they use the test account credentials we provide to authenticate in the app. I was a little confused about why they were testing this feature. To my knowledge, I hadn’t seen evidence of them testing it in the past. Regardless, I sent over some test Facebook account credentials and resent the test user credentials. I also kindly asked them to try again as it may have been a momentary network issue.
I received the rejection around 2pm and responded before 3pm. I was wary of responding to their message because they take forever to respond. It’s usually quicker to just resubmit your app. 6 hours later—no response. At this point, I started getting frustrated. My team had just spent 10 days grinding out a new update. We wanted to launch it and start getting feedback so we could decide what to work on next. Instead, we were just sitting around waiting for Apple to respond to us.
I decided to send them a message through the developer help center, begging for a response to my message and for them to retest the build because we’re confident it was a momentary problem. This message was a bit rude, but I was frustrated. I’ve made them nearly $300K over the past 5 years! Can’t you give me the courtesy of at least responding to my messages in a timely manner?
I went to sleep that night and still hadn’t heard back from them. In the morning, I checked my email and saw an email! It said the following:
Thank you for contacting App Store Review. We understand that you would like to request a response to your Resolution Center post for your app, “Command for Instagram,” as you would like the review of your app to proceed as soon as possible. We also understand that you would like to provide feedback regarding the review process of your app.
We appreciate you taking the time to provide us with this feedback.
We have forwarded it to the appropriate team. Someone from this team will investigate and follow up as needed.
Furthermore, we have escalated your request for a response to your Resolution Center post.
Your case number is XXXXXXX.
App Store Review
Alright, so it looks like they’re taking my request seriously. That was at 6AM, more than 12 hours after I had sent them a friendly message asking for them to give the build another crack. I went to work and before I knew it, it was 11AM and I had not received anything from Apple. Nobody reached out to me. Nobody responded to the message I sent. It’s been over two full days since I submitted the build for review and I’m no closer to it getting approved than I was two days ago.
This kind of incident has happened to me probably about a dozen times in the past few years. Weird rejections. Reach out to Apple. Hear nothing back. Resubmit and eventually get approved. I wish I could share more back and forths with them but unfortunately, they don’t let you access old messages in the Resolution Center (as it’s called) after your app is approved. That’s kind of weird, isn’t it?
Another thing that endlessly frustrates me about the Apple App Store is the 30% tax they take on all digital goods. They guard this 30% cut aggressively. You’re not even allowed to link to an external paywall. Redirecting users to a website where they could subscribe to my app is strictly against the rules. Doing that is the easiest way to get your app rejected. Do rules like that really protect the consumer?
I’m forced to use Apple’s subscription billing infrastructure. This means I own a lot less of the user experience which means I can’t offer refunds—I have to direct them to Apple support and send them instructions. We link users to reportaproblem.apple.com and instruct them to follow a very specific set of steps to get a refund issued. The website looks like it hasn’t been updated since 2012—apparently, having a simple refund process is not a priority for Apple.
So, inevitably we get 1-star reviews from this poor refund experience. We’ve started Venmoing customers the money back because it’s gotten so bad. I care about our brand and I want our users to be happy. I’m willing to eat that cost, even if Apple still keeps their 30%.
It’s now been two full days since I submitted the original build. I check my phone and see a message from Apple: Pending Developer Release. That’s a relief. The approved build was identical to the one that was previously rejected but hey—just another day in the life of a developer.
So, when Tim Cook takes the stage at WWDC this year and thanks developers tirelessly for their hard work, I won’t be drinking the Kool-Aid. It’s kind of ironic—my Apple Developer Membership renews right around WWDC every year. I guess those ~$300k in commissions I paid don’t count towards the $99 a year fee. What a shame.