Search code examples
androidapp-storegoogle-appsandroid-version

Can my free Android app be upgraded to a paid version via in-app purchase AND paid store version?


I'm looking into monetizing my first app with a free and a paid version. It seems that the simplest approach would be to use an in-app purchase to unlock extra features. However, I'd also like the customer to have the option to purchase the full version outright on the Play Store (more visibility that way). I could publish a "pro key" app as an upgrade key, but then they'd have to install 2 packages and it seems like a hassle. On the other hand, I don't want to have to support two independently complete packages (one free, one paid).

So I'm not sure what approach to take. I want to let users upgrade from within the app because that would be simplest, but I also want a the customer to be able to buy and install the paid version straight from the store. Thoughts?


Solution

  • I see three solutions.

    1. Add In-app purchase
    2. Add new app "Your app name pro unlocker"
    3. Add new pro version of you app

    I think that the first one is the most reliable and easy to achieve. It is harder to crack by pirates too. Pirates can upload your app to their sited but when user will download it he will get normal free version. Of course anything can be hacked ;-) but... it is better than 3rd option (see below).

    Second one - in you main app you need to check if "pro unlocker" is installed, maybe you will need to check if certificates are the same and run, custom implemented, android service in this to check if use is allowed to use pro version. It is quite ok and beacuse you will use a quite lot of custom coding it should be safe.

    Third - using Grandle you can simply create second version of your app, during building Grandle will create pro/free version automatically. However pro versions which are using Google Licensing are easy to crack by pirates so...

    To sum up - you have 3 three solutions. I think that the first one is good enough and it is not requiring too much code or time for maintaining. I hope that this will help you ;-)

    Cheers