How to prevent the user from purchasing the same IAP subscription across iOS and Mac?

I have been researching for a few days and haven't found a conclusive answer to my scenario.


  • I would like to provide two subscription types on iOS:
    Lite
    and
    Standard
    .
  • I would like to provide one subscription type on Mac:
    Standard
    .


Standard is the bigger service that covers both iOS and Mac. Lite is the lesser one that only supports iOS.

Based on what I see on AppStoreConnect, Mac has a complete separate IAP than iOS. Hence I can't share the same

standard
subscription type among the two platforms. Even though the
standard
service is supposed to be cross-platform.


I can certainly store each receipt type from iOS and Mac into my DB separately and do the validations directly with AppStore and MacStore respectively. But I can't stop the user from purchasing the

standard
subscription twice, once from iOS and then again from Mac. This is really bad since I wouldn't be able to refund it either if someone makes this mistake since Apple regards them as two different apps.


Surely I can't be the only person with this problem, how is that supposed to be done, please?

Replies

Please review the Apple Developer documentation at

<https://developer.apple.com/documentation/storekit/in-app_purchase/offering_a_subscription_across_multiple_apps>


rich kubota - rkubota@apple.com

developer technical support CoreOS/Hardware/MFI

> I can certainly store each receipt type from iOS and Mac into my DB separately and do the validations directly with AppStore and MacStore respectively. But I can't stop the user from purchasing the

standard
subscription twice, once from iOS and then again from Mac.


"But I can't stop" Yes you can. Before the user in iOS or Mac can purchase the subscription you require that they log onto your DB. If your DB indicates they have a subscription on their other system (i.e. Mac or iOS), don't let them make the purchase.