How to distribute updates to users of pre-installed paid Android App? - android

I wrote a small Android app. It is published on Google Play as two distinct versions
a free demo version with limited features
and the paid version without limitations
Now I have been approached by the distributor of a tablet who wants to pre-install my app on his device. Obviously, I want the owners of his product to benefit from later updates for my app.
Is there a way to pre-install the paid app on the device and still allow free updates to the app?
Thanks!

The pre-installed app has to be free. This comes verbatim from the Google Play Support site:
Unpublished Apps
Existing app users will still be able to receive app updates, even if
you unpublish your app. If you don't want new users to find and
download your app but still want to provide updates to your existing
users, set your app to Unpublished in the Developer Console.
Updating system apps
The user’s system apps (including any pre-loaded apps) are shown in
the My Apps section of the user's device in the Google Play store as
soon as an application with the same package name is uploaded to the
Google Play Developer Console, even if the application is unpublished.
Google Play can manage updates to preloaded applications, provided the
following conditions are met:
The preloaded app needs to be in the system partition
The preloaded app needs to be free
The preloaded app needs to be signed with the same signature as the app published in Google Play
The Package Name of the preloaded and updated app needs to be the same
The Version Code of the updated app needs to be greater than that of the preloaded app

This should happen automatically as long as you use the same signing key and package name.
You can test this and verify by doing the following:
Install the .apk file that you will be providing to the distributor
(lets call this 2.0).
Now upload 2.1 to Google Play (same signing key and package name)
When the user's automatic update checking runs, or when the user opens the package in Google Play, the update will be offered and work great.
The only case I have seen where this doesn't work is with cross-licensing. For example, if I license an App through the Amazon appstore, I will see updates in Google Play, but attempting to update will give me a "not paid" or "buy now" error.

In a common LVL implementation, if a user is not licensed, app should hang at start page and prompt user a dialog pointing them to purchase URL (can be opened via either Google Play client app or web browser).
For a paid app (LVL integrated and published via Google Play), if end user want to use it and keep receiving updates, he must use his Google account purchase it via either Google Play client app or Google Play web version.
The normal procedure to get paid app via Google Play client app is:
Purchase
Download
Install
Is there a way to pre-install the paid app on the device and still allow free updates to the app?
You can send them app-pro.apk file and let them install it without purchasing it first, however, when the app is first opened and in case that license check (requires Google Play client app installed on end user's device) is failed, the purchase dialog should popped up and ask them purchase it. Once the user has purchased it and open the app again and pass license check, he can start using it normally (with ability to update).
The answer is Yes, you can let user pre-install paid app, but in order to use it normally and keep receiving updates, the user must purchase it anyway.

I'm looking for solution for the same problem, and it appears to be impossible.
But I think I have a workaround:
Make your app free, with limited functionality, and offer advanced features ("pro" version) with in-app purchase.
For the in-app purchase version you can have a second licensing method. I'm not sure if it's allowed by Google Play terms, but technically this way you can support these two kind of users, and still have them update automatically through Google Play.

Related

App cannot be downloaded from Google Play because "another account has joined the beta program"

We recently released an app on google play and after a couple of beta versions I moved it from beta to production. However, some people cannot download the app. Here is an example from Vietnam:
I don't know Vietnamese, but I asked a colleague to translate it and it says:
"Another account, {{email}}, has joined the beta program of this app. The updates for this app could include many beta versions."
Does anybody know how to solve this?
Google Play Store seems to store the application and user account association information in the device's local storage. Clearing the data of the Google Play Store from its app info page should do the trick. Now simply switch the the account that you have joined the beta program with and you should be able to install / update the restricted app version.
If it still doesn't work, repeat the process but this time reboot the device.
Another option is to install the app remotely through google play's website. First remove the app from the device, visit the site with the required google account and install the app in the device of your choice remotely.
This should not block updates, it should only be a warning. The English version of the message is "Another account on this device, XXXX, joined this app’s beta program. Updates to this app might include beta versions."
(Good translation by your colleague).
This is a device with more than one gmail account associated with Google Play. It is probably either shared by multiple people or the user has multiple gmail addresses.
An android device can only ever have one version of an APK (with the same package name) on it installed at once, even with multiple users.
The warning is saying that the current account looking for an update is not enrolled in the beta program for the app. However, another account on the device is enrolled in the beta program. This means if this user does an update, they might get a beta version of the app (as the upgrade as to be appropriate for the other user too). The warning is displayed so the user doesn't unexpectedly get a beta version.
However, it should only be a warning, it shouldn't stop the user updating.
There's a way to bypass this guys, should you want to install the application. On the app list when you search for the desired application, click on the "..." symbol at the upper right corner of the application, there is an "Install" option for you.
There is a button on left top corner, for google play store options. There, change the user to a the one they say that can use the program (different e-mail adress), and you will be able to download the required app.

Android APK and root devices. Not allow to share the application

I 'm going to publish a not free APK in Google Play.
If the user device is root, the user can share the APK as "free" to other users
How can I manage this situation to control if the user has paid for the application?
Try implement google app licensing in your app.
Which will give you a result as user has not installed this application from google play store and above it you can handle your logic for not to go further in app.
Google App Licensing

Query Google Play for all users that have installed my App

I would like to add a feature on my existing Android app, that allows old users to not pay (In-App Billing) for a new functionality that i am adding to the Application upgrade,
What i intend to do is:
Check if user has ever downloaded the app, if user has, allow user to use the new feature for free:
If this is a first time download, then user may have to pay(In-App Billing) for the new feature.
I haven't, so far, seen anywhere where someone can query Google play for this.
I found this as related to the idea
can an android app in store (Google play or other) be free for existing users who have it preloaded and paid for others? . But it doesn't really specify if i can query installer information from Google Play.
Basically is it possible to query Google Play and see if a user has ever installed my application... Yes, No, Maybe...

Google Play - update an unpublished app for existing users but not new users?

I have an unpublished app on Google Play which I want to update for my existing users, but not let new users download it.
The Google Play documentation seems to be saying that this can be done by simply uploading an updated apk (and not re-publishing the app):
Unpublished Apps
Existing app users will still be able to receive app updates, even if you unpublish your app. If you don't want new users to find and download your app but still want to provide updates to your existing users, set your app to Unpublished in the Developer Console.
https://support.google.com/googleplay/android-developer/answer/113476?hl=en
But it seems unintuitive that an "unpublished" application would work that way. If the documentation is correct, how does Google Play tell the difference between an 'existing' user and a 'new' user?
Just a follow up: pushing an update to the unpublished app does make the update available to existing users only, but the app does not update automatically for these users. They must browse to the app page, where the app will have an "Update" button which can be triggered manually.
(This is just speculation, I'm not affiliated with Google in any way or anything)
The existing user probably has the app associated with the Google account they use to log in to the Play store.
If you look at your own profile in the store, there's a list of all the apps you've ever installed. I'm guessing the update would be available only for people who have your app in their lists, and the app will still be invisible for new users.
Whenever a user that has the app installed wants to update it, he requests an update of the app, it's different from re-installing the app as data from the app (a save from a game, or some saved preferences etc) are kept untouched, google play can easily detect that since it can detect what apps you have installed.

distribute android app through Google Play and as .apk file directly

I have built an application that we will be selling to customers through the Google Play store.
We also have individuals in house that will support outside customers, and also use it in house. They need to have the application running on their own device. If I distribute it to them via an .apk file, can they receive updates via Google Play? Or do they have to purchase it through Google Play to receive updates?
Secondary question: Is there a better solution to distributing to internal users?
As curious myself and not having official info on this, I just did a test:
On Google Play I have an App at version 1.3.2
I've installed via ADB the version 1.3.0 on my device.
Opened Google Play > My Apps.
The update to version 1.3.2 was available.
Did the update
All seems to work normally.
So my word on this is: Yes they will receive the update (the app has to have the same signature of course).
Maybe you might just have a look on term of services if this isn't breaking any rules.
On the second question, the "better" solution may wary based on the company infrastructure which we don't know.
If the version on Google Play is identical to the version you distributed, signed with the same signature, and it is available as a free app, then Google Play can be used to update the version distributed outside of Google Play.
I received the following in an email from a member of the Google Play Team:
"The side-loaded apps used by your internal users will not receive updates from Google Play. You will need to provide them with the new APK in order for them to access the new features/functionality. This is working as intended to ensure that only users who have purchased a paid app will receive notifications and updates."
So: Paid for apps cannot be updated via Google Play if they are "side-loaded" (installed outside of Google Play).

Categories

Resources