Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert existing iOS paid app to freemium model with in-app purchase

I currently have a paid app in the store. Apple have not allowed a 'lite' version to be submitted as well, so I have no choice but to update the current paid version to a freemium (with in app purchase) model. I have the problem of not loosing functionality for v1 users that have purchased the app the first time round.

Is there any way to determine if an application have been updated from a previously installed version so I can unlock the paid parts of the app?

Two similar questions (from a few months ago):

Transition an existing paid for app to free version with In App Purchase

iPhone + upgrade existing paid application on app store to free application with In App purchase + what about the customers who have already purchased the paid application

like image 215
fringley Avatar asked Sep 17 '10 13:09

fringley


People also ask

How do I integrate Apple in-app purchases?

First, you need to create an App ID. This will link together your app to your in-app purchaseable products. Login to the Apple Developer Center, then select Certificates, IDs & Profiles. Next, select Identifiers > App IDs, and click + in the upper right corner to create a new App ID.

Can you develop iOS apps for free?

You can learn how to develop apps for Apple platforms for free without enrolling. With just an Apple ID, you can access Xcode, software downloads, documentation, sample code, forums, and Feedback Assistant, as well as test your apps on devices.


2 Answers

There is now an Apple-approved way to do this on both iOS and macOS. The originally downloaded version of the app can be obtained from the receipt using the info key Original Purchased Version. You can then decide whether to unlock features if that version predates the switch to IAP.

For instance, once you have retrieved the receipt info:

NSArray *versionsSoldWithoutIAP = @[@"1.0", @"1.1", @"1.2", @"1.3"]; NSString *originalPurchasedVersion = [receiptInfoDict objectForKey:@"Original Purchased Version"]; for (NSString *version in versionsSoldWithoutIAP) {     if ([version isEqualToString:originalPurchasedVersion]) {         // user paid for the currently installed version     } } 

For more info see the WWDC 13 video Using Receipts to Protect Your Digital Sales. At 5:40 the presenter comments: "I think the most exciting thing that's in the receipt this year, especially for you guys if you have a paid app in the store is that we've included information in the receipt that's going to let you do a transition from being a paid app to being a free app with in-app purchases without leaving behind all the customers that have already paid for your app."

like image 136
spinacher Avatar answered Sep 19 '22 17:09

spinacher


With iOS7, iOS app can verify app store receipt, which contains app download date. By using this donwload date, you could determine if a customer is previously purchased or not

like image 24
Arnold Tang Avatar answered Sep 18 '22 17:09

Arnold Tang