Over a million developers have joined DZone.

Apple Quietly Revises Its In-App Purchasing Requirements

· Cloud Zone

Learn about the benefits and drawbacks of microservices with best practices for your own architecture, brought to you in partnership with Iron.io.

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.

The Cloud Zone is brought to you in partnership with Iron.io.  Learn about best practices and common pitfalls for working with Iron.io. Avoid the dead ends, and take the enlightened path.


Published at DZone with permission of Axel Rauschmayer , DZone MVB .

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}