ensuring user can only do one action per day across all their iOS devices

Hi,

My iOS app allows a user to perform a rather expensive cloud operation (costs me 10 cents per time) and I want to ensure they can only do it once a day across all of their iOS devices. The marketing will make it clear this is how it will work so users won't be surprised. While most will only have one iPhone in practice, with my subscription pricing I'd lose money the second someone started doing it on a second device.

I could solve this using Sign in with Apple to ensure there is a 1:1 correlation between Apple ID with paid subscription and a user account in my system that I could track usage against but I'd like to avoid users having to sign in at all since it would serve no purpose from a user perspective.

identifierForVendor won't work since it's different across every device the same user has

Is there something in StoreKit v2 receipts or transaction data that would be stable longterm and have the same result across all devices using the same Apple ID? I don't actually want any info about the user, just a stable anonymized identifier to see they are the same user on different devices.

I could also go with a consumable in-app purchase but I don't think users would like this pricing model for this app.

Thanks!

Colin

Accepted Reply

The subscription itself is your unique identifier across a customers devices. Track this event across the subscribers original Transaction ID. If your app is utilizing the proactive restore best practice, then it will have this at all times when the app launches https://developer.apple.com/videos/play/wwdc2022/110404/

Add a Comment

Replies

The subscription itself is your unique identifier across a customers devices. Track this event across the subscribers original Transaction ID. If your app is utilizing the proactive restore best practice, then it will have this at all times when the app launches https://developer.apple.com/videos/play/wwdc2022/110404/

Add a Comment