Search code examples
xamarinxamarin.formsxamarin.androidxamarin.ios

How to work with Xamarin.Forms cross-platform subscription when using in-app billing?


I am developing Xamarin.Forms application which will be used for Android and iOS. It will have access to full functionality with a paid subscription. I researched about subscriptions policy for Play Market and App Store and they require to use their in-app billing if an application gives access to some of its functionality only with a subscription.

But if, for example, user buys the subscription in Android app and then wants to use iOS app - what is the best way to handle this? Since subscriptions are created separately on Play Market and App Store side they need to be somehow synced?

That's probably a problem that was solved a ton of times, but I can't find how to do it


Solution

  • This is explicitly allowed on the platforms, e.g., here's an excerpt from Apple's App Review Guidelines:

    3.1.3(b) Multiplatform Services: Apps that operate across multiple platforms may allow users to access content, subscriptions, or features they have acquired in your app on other platforms or your web site, including consumable items in multi-platform games, provided those items are also available as in-app purchases within the app.

    As to how to do this: Basically you have to have user authentication and a backend that ties a subscription status to a user ID. Also, the backend needs to keep the subscription status up to date by refreshing the subscriptions with the stores (Apple App Store, Google Play Store).

    (If you weren't using Xamarin, I'd recommend using RevenueCat for this (disclaimer: I work there), but we don't have a Xamarin SDK so I don't think that that's a possibility)