Reputation: 694
The current version of an application in the App Store is free and has very limited functionality. An In-App Purchase unlocks everything else.
I have decided to remove the In-App Purchase and just make the application cost the same price as the In-App Purchase did. But if I make the update now, then those users who have the free version but who have not yet paid for the In-App Purchase will get a free update into the full version.
I have removed all traces of my singleton class, PurchaseManager, from the application, so that at this point, when I build/run it, all of the features are unlocked. At this point, how can I make sure that the free-version users don't just ride an update into the full version?
Maybe there's a way to test whether the app is obtained through an update or through a purchase? That way, if it's through an update, I will see if it's the free version w/o the IAP and then force the user to purchase the IAP to continue playing.
Any ideas?
Upvotes: 4
Views: 2017
Reputation: 694
There was a user default that was guaranteed to be set in the first version. If the objectForKey: returned nil, then it was never set which means the first version was never run. In that case, I set YES to the user default for whether the In-App Purchase was purchased.
The above ran only once, which guaranteed that users of the demo continued to use the demo until they bought the In-App Purchase (priced the same as the second version of the game), and that users of the full version from v1.0 had the full version as planned.
Upvotes: 1
Reputation: 14499
Not that easy. Push out a minor update your current app and record the device ids of all those who got the in-app activated.
post a blog on your site asking users to send in their device ids and emails for re-imbursing the cost of the in-app purchase. You can cross verify this from the collected device ids.
I know this is painful. Most people who first released their apps on Cydia and then officially on app store did this. For example, snapture.
Upvotes: 0