How do I organize by products/entitlements for some being cross-platform and some not?

  • 28 February 2024
  • 1 reply

Badge +1

A little confused with the right way to set these up.


  • Android and iOS apps both currently with one-time “pro” unlock IAP, iOS is using RevenueCat but Android isn’t quite yet
  • I want to make the IAP separate between iOS and Android, meaning if they use it on both platforms they have to buy it twice (as it is today)
  • I want to add a new additional subscription option that is cross-platform, meaning if you buy it on one you get it on both Platforms. This subscription would include all the features of the one time IAP and some additional cloud-supported features.

Can someone help me decode the best way to arrange my products like this?

This post has been closed for comments

1 reply

Userlevel 4
Badge +8


I think the most robust way to do this would be to have three separate entitlements:

  1. Pro-iOS
  2. Pro-Android
  3. Pro-X-Platform

Then, your offering can have a “This Platform” package and a “X-Platform” package. In the “This Platform” package, there is an iOS product (tied to “Pro-iOS” entitlement) and an Android product (tied to “Pro-Android” entitlement). The “X-Platform” package should contain both an iOS and Android product, each tied to the “Pro-X-Platform” entitlement.


Then, when you go to unlock features for a particular user, you can have logic like this:

if (hasXPlatformEntitlement) {

    // unlock

} else if (platform.iOS && hasIOSEntitlement) {

   // unlock


// etc. for Android entitlement and no entitlement


That should allow users to purchase and access their purchase on the correct platform.