There is a lot missing from the developer perspective here. I've been an iOS app developer for over a decade now, and I even worked at Apple for a few years as a developer for iOS. At every single company I have worked for, except for Apple, the company was negatively impacted because of of Apple's arbitrary and far reaching application of their App Store Rules.
The in-app purchase issue is just one facet of Apple's anti-competitive behavior and policies; albeit this is often the most contentious. Here are some examples of ways that companies I wrote software for were harmed by app store policies:
- An app which offered the ability for users to receive "tokens" for their use of the app and then later use those same tokens to "purchase" various additions to their user profile was blocked from the app store after this feature had been available to users for several months. We were required to completely remove this feature as it was considered "an alternative store" which enabled app functionality through a means other than in-app purchase. Of course, the idea was to incentivise users to use our app constructively, not to pay Apple for status. The feature had launched already but randomly during a review for an update that was unrelated this was flagged and we were required to remove the feature entirely – effectively throwing weeks of work by our development team down the drain.
- Another company had a feed of posts that included embedded youtube videos. The user could play the video directly from within the feed. Again, after having had this feature available to users for over a year, an unrelated update was flagged as having "objectionable content" because the reviewer was able to use the embedded WebKit view showing Youtube content to navigate to the Youtube search and search for the term 'porn'. Our users were primarily teenagers so Apple threatened to remove our approval for kids unless we "removed the objectionable content". The only solution we could think of was to prevent any user interaction with the embedded web views, which meant that the videos playing in the web views were no longer controllable, you could start them or scroll away in the feed to stop them. You couldn't scrub the timeline, you couldn't go to full screen, you couldn't pause the video, and you couldn't search Youtube for 'porn'. After this the company received a raft of negative reviews and a drop in rating and rank in the App store. Interestingly, even a device setup as for a "child" under a parents account isn't prevented from searching for the term 'porn' from within the youtube.com website within the Safari browser.
- A crypto company which built a crypto wallet app was required to remove (once again the feature had already been released and was flagged arbitrarily during an unrelated app review) a primary function of their application: An integrated dApp browser, because Apple viewed this as a way to run code on the device that isn't in the app bundle. Put aside for a moment that this is how every website in existence works (JS lives on external servers, Safari runs that JS), this demand by Apple came after already having sacrificed functionality to meet their earlier demands. Originally the browser had a homepage that listed popular cypto dApps. Apple viewed this as an alternative app store and demanded it be removed. The solution was to have the dApp browser have no homepage. This left users with a central piece of the application appearing to be an empty web browser that appeared to do nothing. Many months later, Apple decided that they didn't want dApps at all and during an unrelated update rejected the app and told us to remove the functionality completely. They also gave us two weeks to comply or our app would be removed from the App store entirely (clearly a double standard given their appeal in this story asking for more than 90 days to update their ToS). They also made the laughable demand that we include the ability to use in-app purchases for NFT purchases or remove the feature entirely. Given that in-app purchase has no ability to run on Ether, this is a non-starter. The amount of negative and confused reviews about app functionality and missing features we have been prevented from enabling (because again, in several cases they were already developed) is massive. Users don't understand and blame our company while Apple makes demands of us that hurt our reputation, our users, and our revenue.
What is ridiculous is that I have many more examples of these kinds of issues. More than half of US smartphone users use iOS. Apple provides no mechanism outside of their app store for providing applications to users (in other words, while they do host the applications for 'free' we have no other choice). And often times these rules are applied unevenly and randomly. In all of the above cases I can provide examples of competitors that were allowed to continue to have that functionality while we were prevented. It tilted the scale of the "free market". What's worse, is that in many cases Apple themselves is exempted from these same rules, giving them an even greater unfair advantage in the marketplace of competing software. It's not as if they just built the store and are controlling what can be on the shelves. They built they store, created competing products for the most popular products, enforced draconian and arbitrary rules on every product sold in the store, AND prevented any other store from being built in the entire town by means of also playing the role of local government. If this isn't anticompetitive behavior then I don't know what is. I used to love Apple and their products. Every day I see them more and more as a monopoly that has gone mad with power. They are hurting users and developers in an attempt to maximize their profit.