Going from paid to subscription upsets prev users

I recently added added a major upgrade and ongoing service to my app. it was a paid app but is now a subscription due to ongoing services and related expenses. Some older paid users are upset that they have to subscribe if they update. Although they can keep the old version they feel that they have lost their purchase if it auto updates. Any way to let them download the older version or address their complaint?

Replies

The proper appraoch was to have examined the receipt and checked the original_application_version field. If that field indicated they bought a paid version you turn on the subscription for 'free'.

I REALLY appreciate the response, I am stuggling with the dev team to get this done, they are respnding with this example of the issue.

https://stackoverflow.com/questions/10982806/ios-app-purchase-date


Apple is automatically refunding the original purchse price to anyone who complains the app is now a subscrition, even if they paid for an outdated version years ago. This is not a solution as I have thousands paid users and would rather update them for free than refund, ouch!

In your link see answer by ‘software evolved’ on June 3, 2015. And Apple may be granting refunds only to users who also purchase the IAP. In that case you are losing nothing.

1. Is the solution here then to look up original_application_version in the receipt at Bundle.main.appStoreReceiptURL, and check if this version is from the paid app "era"?

2. Is there any way to test this (Paid app upgraded to free+IAP) flow in sandbox?

1) you will need to decode the receipt or send it to the Apple servers for them to decode it

2) in the sandbox the original_application_version will always be "1.0" - you need to modify your code to 'test' it. First make it so that "1.0" is after the app went free and see if it works. Then make it so that 1.0 is before the app went free and see if that works.


3) caveat - from

https://developer.apple.com/library/archive/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html#//apple_ref/doc/uid/TP40010573-CH106-SW1

regarding original_application_version in iOS you are looking at "Build" value not "Version" value:

"This corresponds to the value of

CFBundleVersion
(in iOS) or
CFBundleShortVersionString
(in macOS) in the
Info.plist
file when the purchase was originally made."