Over a million developers have joined DZone.

Apple Quietly Revises Its In-App Purchasing Requirements

DZone's Guide to

Apple Quietly Revises Its In-App Purchasing Requirements

· Cloud Zone ·
Free Resource

Insight into the right steps to take for migrating workloads to public cloud and successfully reducing cost as a result. Read the Guide.

Apple has quietly revised its in-app purchasing regulations. Mac Rumors provides details, this post gives a summary.


  • If you sold content outside the app, you also had to implement in-app purchasing
  • Your in-app price had to match your external pricing, while giving Apple a 30% cut.
  • If you show a link or button that takes people to an external purchasing site, you have to implement in-app purchasing
  • You can choose your in-app pricing freely.
  • The old regulations were unclear as to whether companies like Netflix, that let you subscribe externally, would have to implement in-app purchasing (which is a lot of work). The new rules clarify that they don’t have to, as long as there is no “click here to purchase stuff” button.
  • Why the change of heart? There were probably several reasons:
    • The in-app purchasing requirements might have been a product of a strategy tax [1], where one part of a company make another part do counter-productive things. In Apple’s case, the old rules would have given iTunes movies, iTunes music and iBooks a competitive edge against, say, Amazon. On the other hand, they threaten the competitiveness of the the iOS app store against Google. Now the latter party prevailed.
    • Some companies such as the Financial Times were prepared to drop their iPad app in favor of a webapp [2].
    • Competition from Android is increasing, albeit slowly.

TrueSight Cloud Cost Control provides visibility and control over multi-cloud costs including AWS, Azure, Google Cloud, and others.


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}