Offering a Subscription Across Multiple Apps

I'd like to get some more details on this "feature". Apple has some implementation details but it's a very vague document that I can't make much sense of.

My situation: I have two apps: app A, and app B. Both apps sell auto-renewable subscriptions (each has a single subscription group selling a monthly and yearly pro-plan).

I would like to create a new subscription group that users can buy that gives them access to both app A and B. Right now, I could already implement this by just creating a new subscription in both apps A and B and use some sort of user registration system to provide pro-access to both apps if either subscription (from A or B) has been purchased.

What is not clear to me is what service Apple is providing, at least based on the documentation above. In the documentation it even specifically states:

Important

If the user has purchased the subscription from an app, you must propagate the purchase across all the apps that provide the subscription service. Failing to persist the purchase to the other apps opens the possibility of a user paying multiple times for the same service.

This makes me believe there is no Apple magic happening in the background. It's basically all up to the developer to implement this. I assume this means that if a user purchases the new cross-app subscription in app A, that the user cannot restore it in app B.

What am I missing?
Post not yet marked as solved Up vote post of jbweimar Down vote post of jbweimar
1.4k views

Replies

I found another clue at 14:00 in an WWDC video.

The documentation text you quoted said it 100%—it's up to you to implement a mechanism to validate user purchases in any participating app. When there is an active subscription, from any app, you are able to unlock entitlements in all of the apps. When the subscription expires, you are also able to present purchase options in any app, too.

Apple implied that you should have a back-end server at the minimum to implement subscription. There are services such as RevenueCat that takes away back-end server programming from you, so you may want to take a look at that.