Think Different v. Apple

Apple, why can’t iPhone users have this?

Apple rejected my messaging app arguing that it facilitated ‘inappropriate’ behavior, but they used the same behavior to communicate my rejection.

Martin Otyeka
Mac O’Clock
Published in
10 min readApr 16, 2020

--

‘Think Different’ is one of the greatest values ever exported by Apple to creatives around the world. Combined with a Macbook, iPhone and the 2014 release of the Swift programming language, we have the greatest creative arsenal ever invented for ordinary people to effect change through software. Swift especially has led to a new breed of creators, ones who never thought they would be able to build software–the ones who worked in finance, or in education, the career switchers. By default, Think Different lies deep in our DNA since many of us got into making iOS apps without taking the traditional Computer Science route. The problems we see are different, the problems we solve are different, and the way we solve them is different. How discouraging is it then, to ship a novel concept to the App Store and Apple tells you to make it like the others that are already in the store?

Introducing Substitution Messaging

Have you ever had a friend deliver a message on your behalf?

  • Maybe in school, you had a friend reach out to your crush.
  • Perhaps at work, you wanted to be candid with your coworkers.
  • Maybe you once reached out to a trusted journalist to share a personal story.

We always have moments when we need to share candid messages but for one reason or another, we might not be the best messenger so we ask a friend to deliver it on our behalf. There has been a proliferation of messaging apps but none currently facilitate this natural form of communication. I believe this should exist so I built an interface for it in an iPhone app called Facecharm. I call this paradigm Substitution Messaging (Friends delivering messages for friends) and I call those messages Charms.

How It Works

  1. Diana has a message for Rita and chooses Josh as her messenger (Substitution).
  2. Diana sends her message to Josh for delivery to .
  3. Josh can either deliver it or not.
  4. Rita receives the message from Josh. Her reply goes to both Rita and Josh.

That’s it, two messages: Send a charm and Receive a Reply. The behavior is similar to passing on a note in real life, or forwarding an iMessage — Facecharm just does it better.

I submitted this app to the App Store on January 9th, 2020.

Charms

Screencaps of a-few Charms sent and received. Your friends might come up with better Charms than my beta testers :)

Jan 14th — Rejection

Guideline 1.1.6 — Safety — Objectionable Content
Your app allows users to anonymously call and text people or wrongly identifies the individual calling or texting, which is not appropriate for the App Store. We recognize that users can choose to hide their caller ID in the iPhone Settings, but this does not invalidate the guideline requirement that apps should not enable anonymous calling or SMS/MMS messaging.

This rejection message was confusing for two reasons:

1. The App Store is full of anonymous apps so anonymous communication isn’t prohibited. Furthermore, Facecharm isn’t truly anonymous since the person who delivers the message knows who sent it.

2. Facecharm doesn’t misidentify people. The first version allowed you to use a friend as a proxy to deliver a message to a mutual friend. Users had to opt-in and they could only use mutual friends to deliver messages on their behalf. They could also opt-out anytime.

I conceded that if this implementation was unclear to the reviewer, it would probably be unclear to users too. So, I made UI changes to make it more evident that users are being used as proxies to deliver a message, not misidentified as the sender. Yet, it was rejected again on January 16th.

I requested to speak to a representative. They called on January 27th and held firmly that ‘message sending should be entirely manual and performed by the individual identified in the chat’. This feedback led to a massive re-imagination of the app, one where I felt that the feedback made the app better. The result was the interface you saw above involving 3 individuals (A sender, a messenger, and a receiver. Previously only the sender and receiver were directly involved). In the end, I believe this was a better representation of the real-life behavior.

But the rejections didn’t stop.

Feb 16th - Rejection

Guideline 1.2 User Generated Content
Your app includes features that appear to allow content which could be interpreted as being offensive or mean-spirited. Currently, the app allows
users to send communications via a third-party where the content could be interpreted as being offensive or mean-spirited.

This read like an indictment of every messaging app in the App Store. If you replace “communications via a third-party” in the rejection message above with any of the once novel ideas below, you can easily reject all of them.

  • Anonymous Messages — YOLO
  • Disappearing Messages — Snapchat
  • Encrypted Messages — iMessage

The App Review guidelines are very important. Many apps with user-generated content failed to prioritize anti-abuse measures and instead became breeding grounds for abuse, hate, and intolerance. Their failures were valuable lessons for the entire ecosystem.

Guideline 1.2 User Generated Content
Apps with user-generated content present particular challenges, ranging from intellectual property infringement to anonymous bullying. To prevent abuse, apps with user-generated content or social networking services must include:

A method for filtering objectionable material from being posted to the app

A mechanism to report offensive content and timely responses to concerns

The ability to block abusive users from the service

Published contact information so users can easily reach you

Based on the rejection, I thought the deliberate steps I took to limit or prevent abuse weren’t taken into account so I sent an appeal outlining them.

Feb 24th Appeal

In my appeal to the App Review Board, I noted that their guidelines acknowledge that abuse is a natural by-product of any app leveraging user-generated content. As such, these apps must have strong anti-abuse measures built-in — this is the right thing to do. After all, some of the App Store’s greatest hits could be downright dangerous if it weren’t for their anti-abuse efforts. Below is a list of steps I took to ensure Facecharm’s anti-abuse features address the requirements of Guideline 1.2.

Facecharm’s Anti-Abuse Measures

  1. Some people may not want to be charmed by their friends, so sending and receiving messages through a friend requires opt-in. It can be turned on and off in the user’s settings.
  2. Private messaging with friends is less prone to abuse than open social platforms. Facecharm only allows users to add friends from their contact list ensuring all parties in a 3-way conversation are friends.
  3. Friends who are asked to deliver messages can choose not to do so if they deem them abusive. They can also block and report the would-be abuser.
  4. Users have an incentive not to deliver abusive messages, as they too face a penalty if the receiver decides to block or report them for abuse.
  5. Facecharm users can always talk with a support agent if they have a negative experience on the platform.
  6. Users who are repeatedly reported or blocked for abuse are either temporarily suspended or permanently banned.

I believe this is a great start and I am willing to let evolve and get better as users send suggestions. However, my appeal was rejected. It is important to note that the guideline under which I was rejected specifically requires anti-abuse measures for user-generated content apps but when I pointed them to these measures in my appeal, they changed the rejection reason, which led to another rejection.

Feb 26th Rejection

We continue to find that your app allows users to communicate with other users under the guise of another user’s username. Although we understand that users have the ability to opt-in, and out of this option to send and receive substitution messages, this is not in compliance with the App Store Review Guidelines. Message sending should be entirely manual, and users should be identifiable as the originator of the message by the recipient.

To resolve this issue, please revise your app to ensure that users are not able to spoof their identity and send messages under the guise of another user’s username and are fully identifiable as the message originator by the message recipient.

I found this rejection unreasonable for the following reasons:

  1. There is no language in the official App Store Guidelines mandating that messages sent must either be authored by the sender, or that the original author must be identified. This would preclude multiple common forms of content sharing that we take for granted.
  • You can forward an iMessage but the recipient is not informed that you didn’t author the message, and the original author is not identified.
  • You can forward messages on WhatsApp but they explicitly tell the receiver that it was “Forwarded” implying that you are not the original author.
  • Facecharm explicitly tells the recipient that you delivered the message on behalf of a mutual friend, which implies that the mutual friend authored it, not you.

2. This rejection falsely stated that Facecharm is spoofing user identities in order to send messages. I figured that one reason they could have drawn this conclusion is if they didn’t go through the entire flow which requires three users–a sender, a messenger (substitution), and a recipient. I checked the logs and I was correct, they utilized one user.

Nevertheless, I gave the App Review team the benefit of the doubt. I blamed this rejection on my UX. Again, I tried to improve the design to make it even clearer that the originator of the message has to request delivery from a mutual friend. It didn’t matter because this led to the final rejection.

Mar 10th Rejection

Your app allows users to anonymously call and text people or wrongly identifies the individual calling or texting, which is not appropriate for the App Store, even if the third-party intermediary is listed as the app. We recognize that users can choose to hide their caller ID in the iPhone Settings, but this does not invalidate the guideline requirement that apps should not enable anonymous calling or SMS/MMS messaging.

This is similar to the rejection Facecharm received on Jan, 14th but this time it came with a slight wording change. The newly added bolded line I think was meant to state that Facecharm is misidentifying the individual texting adding… “even if the third-party intermediary is listed as the person delivering the message”.

Having a friend manually deliver your messages manually instead of automatically was an invention that came from my discussions with Apple — their feedback spurred a redesign of the app. Changing the language of the official rejection to include this new invention makes it impossible to conform to the guidelines, especially when they are invented after you build and submit your app.

Eventually, the real reason for the rejection wouldn’t be found in the guidelines — I would hear that from Apple themselves.

App Review suggests I make a messaging app like the others

A representative from the App Review Board called once again to explain the rationale behind my last rejection. I told them that Facecharm complies with all the requirements of Guideline 1.2 and asked if they can point to a specific guideline that I was breaking. I did not receive a direct response, only told that the App Review guidelines can’t possibly list all the reasons why an app can be rejected. They reasoned that the concept behind the app was “new”, the behavior “inappropriate” and that I should instead make the app like “every other messaging app where users communicate without a 3rd party”. In other words, don’t innovate–just conform to existing paradigms. This hurts coming from Apple, the company whose innovations have led to the decimation of many old paradigms. I was also told that whoever delivers the message should also be the “original author of the message”, seemingly invalidating content sharing and messaging forwarding, features that are present in all messaging apps including iMessage.

No creative in the iOS ecosystem who subscribes to Apple’s core value “Think Different” wants to be told to build the same concept that can be found in every competing product. The ubiquity of apps and the maturity of the App Store mandates new thinking so it’s incumbent on the App Review process to accommodate creators who themselves are thinking differently.

The Great Irony

Throughout my phone interactions with Apple’s representative, I noticed that they always referenced Facecharm’s rejections as the opinion of the App Review Board (Internally I kept thinking, “Who on the App Review Board? Why can’t I speak to them to understand what makes Facecharm inappropriate?”). Therein lies the great irony — in rejecting Substitution Messaging for being “inappropriate”, the App Review Board felt it appropriate to use a 3rd party to communicate that message to me — the same paradigm they just rejected.

Substitution Messaging is natural and has real-world applications. Apple uses it to communicate with developers and you should be able to use it to communicate with your friends.

Please share and help me ask Apple, “Why Can’t We Have This”?

‘Think Different’ by Apple

Beautiful Words

Facecharm Review Timeline

--

--