Converting iPhone applications from pay to in app purchases

I have a product on the store called PirateWalla, and based on the nature of the application (More users would probably mean a worse experience for existing users) it was desirable to make it a more premium product (I priced it at 4.99, even though I probably would have made better profit at .99 by selling higher volumes).  The current users of the application are dedicated and active, regularly submitting feedback, asking for new features, and enjoying the app.  However, having a high application cost also meant that whenever a user paid for the application and it wasn’t exactly what they expected they would give it bad reviews.


With the new version of this application, I wanted to switch to an in-app purchase model, making the application free to download and try, but charging for the key desired functionality.  However, Apple doesn’t allow you to migrate existing customers to this model very easily.

Can’t just make the switch, because there is no way to give existing customers the new in-app purchase feature for free (App cost = $0 then feature cost will be $4.99 which will work for new customers but existing customers who already bought the app would now have to buy the feature)

Can’t create another application, as it would be confusing to users, and would make it so that there is now two applications to update.

So finally, I’ve decided on a phased upgrade.  First I’ll release the in-app purchase, requiring users to purchase the new functionality at a lower price (.99), while leaving the price of the app the same.  So that existing customers can buy the feature before the price goes up.  Then, once most users have had a chance to upgrade, I’ll drop the apps price to free, and adjust the price of the feature.

I feel bad about taking this route, as it’s not really fair to the existing customers.  So to make up for it, I revamped a whole section of the application, adding new functionality and improving on existing, so that they will be getting something for their .99.

So if you are an existing PirateWalla user, and don’t want to pay me another dime, I understand.  Don’t upgrade past 2.9, and your application will continue to function as normal.

If you’d like the new features and functionality however, please upgrade and buy the “item location” feature as soon as possible, as I won’t leave it at .99 forever.  There are more features to come, and some of them will benefit from having a broader user base (Teaser – Game Center integration, with high scores and achievements!)

6 thoughts on “Converting iPhone applications from pay to in app purchases”

  1. Thanks! I’m peeved, but it seems that the fact that the App became available before the In App Purchase is a quirk of Apple’s… Seems sometimes those features can lag product release by up to 72 hours… Doesn’t make for a good user experience 🙁 I’m working with them as best I can, but there is no phone support, only email.

  2. Kevin, it appears to be available now (even though not showing on the iTunes app page yet). Thanks again for the great update! The new ‘moving location’ capability is great!

  3. Just downloaded PirateWalla and am loving it, but when I grabbed it to put on my iPad, I am being asked if I wil accept another $4.99 charge.

    Not familiar with how inapp purchases work – can I use it on my iPad without paying again or is it an upgrade for each unique device?

    Ehen I get my next iPhone will I have to buy again?

  4. In app purchases can only be made once from the same account email address… (Much like buying apps), the second time, you will be informed that you have already purchased the upgrade, and you will get it again at no cost. Yar.

  5. A new message was posted in the thread “Add IAP to an existing Application” by PeterKramer:


    A simple approach is to leave the paid App as an App and create a new free App with IAP (2 App approach). Another approach is to use the keychain (1 App approach). Here is a step-by-step:

    2 App approach:
    – first upgrade the paid app so that it can do an “openURL” – look up URL Schemes described in:
    You will be making an entry in the info.plist that indicates that the paid App can execute a URL Scheme of your naming. It will be a dummy URL for example – “DUMMYURL” – it won’t really do anything.

    – then, in the free App, search for whether there is an App on the device that can openURL for DUMMYURL. You will have a line of code like:
    if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@”DUMMYURL:”]]) upgrade=YES;

    – and finally, tell the users of the paid App that they can use the free App and get upgraded for free if they just keep an upgraded version of the paid App on their iPhone. Also, be sure to tell the users of the free App that before they pay for the upgrade, if they bought the paid version all they have to do is install it on their device and the free version will upgrade itself for free.

    1 App Approach:
    – first upgrade the Paid App so that it writes on the keychain (search keychainWrapper for code) a stamp indicating that it was on the device. You could use an NSUserDefault but it does not leave as indelible a mark (i.e. it is lost when the App is deleted from the device – the keychain stamp is not).

    – then, a few weeks later, downgrade the App to free with IAP. Have that version of the App search for the keychain stamp that indicates the earlier version was on the device. If so, upgrade.

    The problem with this approach is that some users will not upgrade to the middle version but they will downgrade to the free App without ever getting their keychain stamped. Tell those users to email you with a receipt or a good explanation about how they ‘deserve’ an upgrade. Have them email from within the App. Stamp their email to you with a random number that they also load into their keychain. Then send them back a key to unlock the IAP. That key could be their random number (in their keychain and in the email) multiplied by a factor like .8567 . Their App can see if the factor is correct and if it is, upgrade the App. That way they can’t tell their friends how to get a free IAP upgrade.

Leave a Reply

Your email address will not be published. Required fields are marked *