5

Is it possible to list in Google's Android Market a single APK for both free and paid versions?

So far, I only found this tip to create a button in the free version that links to the paid versions, but IIUC these are still 2 separate APKs.

I also found a reference to creating free/paid versions from same code, but that still refers to 2 separate APKs.

What I am interested in is an (Google) Android Market way to provide functionality that is similar to PayPal's MPL (i.e. one app does it all). Is this possible?

EDIT: Based on the answer below, it seems that Google's In-App Billing facilitates this.

However, LVL's Requirements and limitations says:

Licensing is currently for paid apps only, since free apps are considered licensed for all users. If your application is already published as free, you won't be able to upload a new version that uses licensing.

I know that LVL is not the same as In-App Billing but LVL is definitely required for In-App Billing to work (if only for using the key). So how does this reconcile?

Community
  • 1
  • 1
ef2011
  • 10,431
  • 12
  • 49
  • 67
  • "since free apps are considered licensed for all users". This to me seems the wrong approach. Since licensing can be built into applications why not consider apps to be unlicensed for all users, then use licensing to determine if it has been purchased. The Market should handle that. Would then bypass the hassle of separate packages. – CraPo Apr 05 '12 at 16:00

2 Answers2

6

It's possible to use something known as in app products. The min API is 1.6, which should work plenty well. Basically, anyone could download the code, but some unlocking of features could be done if desired to buy new functionality. They also have sample code which shows how it works.

Alternatively, you could use the licensing API, and simply check to see if your app is licensed. This would require a different package name, however, as all apps do.

PearsonArtPhoto
  • 38,970
  • 17
  • 111
  • 142
3

You can rename the package before compile and release it as two apps.

i.e. com.example.yourproject and com.example.yourprojectpaid

You need to use the Key for both he LVL and the in app billing and its a good amount of effort to set up. If you want the easy way out use the example above, but know your paid app is not really protected from piracy if you don't use the LVL for your paid app or in app purchases if you keep the app free.

Good Luck.

Chris Lucian
  • 1,013
  • 6
  • 15
  • thanks for the tip about having to use the key for *both* the LVL and the in app billing. Is renaming the package the **only** difference that's needed between the free and paid versions? – ef2011 Jun 13 '11 at 13:21
  • @ef2011 Yeah, You can re-deploy with two different package names and it will be considered 2 different apps. The free app wont need to be protected, then you can link to the paid app which you will need to protect with the LVL – Chris Lucian Jun 13 '11 at 23:03
  • Agreed. However, free app might need protection too, because few attacks consist of replacing the original Ads publisher ID with a rogue one, diverting your revenue from you to evil people. – Aladin Q Oct 22 '12 at 13:56
  • Hence the need to Obfuscation using proguard. – Chris Lucian Feb 01 '13 at 21:37