My iOS app currently offers an auto-renewable subscription A. I want to add a second subscription option B with a discounted rate. Option B shall only be available for users who bought a certain upgrade X via in-app purchase in the past (that in-app purchase is not offered for sale anymore).
How can I prevent that users subscribe to A and then switch to B in the System Settings? Users who didn't purchase X shouldn't even know that B exists.
As far as I understand Apple's documentation and App Store Connect Help, users can upgrade/downgrade/crossgrade between subscriptions in the same subscription group. I assume that by adding the subscriptions to two different subscription groups, switching between A and B is not possible, but I couldn't find a definitive answer on this.
If a user starts any subscription, will they automatically see all subscription groups in the System Settings, or just the group with an active subscription?
If a user starts any subscription, will they automatically see all subscription groups in the System Settings, or just the group with an active subscription?
Users can never see the products from another subscription group. Only if A and B are in the same subscription group, the user will be able to change the plan using System Settings.
To determine the eligibility of the user to buy B, you could check the receipt's latest_receipt_info
property. If a purchase record of X is present, offer the user to subscribe to B, otherwise, offer A.