3

The title pretty much says it all, but I can elaborate. I have a paid iOS app that has plenty of existing customers. I think i want to convert to a free app now, and allow full upgrade via in-app-purchase. The problem is, I don't want to make my existing customers buy the app again to use it, nor do I want to make it easy for hackers to just flip a switch and get the pro version.

What is the most secure way to "Grandfather In" existing users of a paid iOS app that will go free?

2 Answers 2

6

A big problem with trying to be tricky is you never know when/if someone who purchased your app will run it again. I am assuming you don't have some sort of registration involved with your app where you have contact information of your users, that would be too easy.

Probably the best way:

  • Introduce a new version that is free and keep the paid version. Some people might prefer to buy it outright in the future. Downside is it splits your "popularity" between two copies, but upside you get more hits in search results. You may want to differentiate them by name somehow, but if the free one upgrades to full functionality then avoid calling it "free" or "lite". While you are maintaining two apps, they can share 99% of the same code.

Every other solution I can think of would either be a lot of work, or have the potential to leave a lot of users out.

2
  • I dont know if it is ideal, but this is the way I went.
    – coneybeare
    Jan 14, 2011 at 4:47
  • 1
    The more I think about it, this is really the most secure. There is no possibility of abuse or vulnerability. Jan 14, 2011 at 9:37
1

What if you point-update your paid app with an "Unlock in-app-purchase version" feature? It calls home, you authenticate that it's not the 500th unlock for this user, and put them in your database. Put an "upgrade from previous version" in the in-app-purchase version and, if they activate via that route, it calls home and you authenticate them against the database (making sure that they're not the 500th upgrade for this user)?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.