Update app via Google play, which is installed by APK file - android

I have an app that is not deployed via Google play store.
It has it's own APK file server, and previously, it doesn't have "update" functionality. Because of it is special purpose app, so a user who need to update app, he need to just uninstall current app and install new app.
Now I need to update these already installed app via google play.
Question is:
Can I update app via Google play store, that is installed via APK file?
Tested environment:
Google play service 11.7.46
Play store 8.4.19
Galaxy S7
Released Koeran market only.
I tried:
1) Build three test APK Versions 1, 2, 3.
2) Deploy Version 2 and update Version 3 via Google play store.
3) [FAILED] Install APK Version 1 via ADB, and cannot update via Google play store. (In google play page of my test app, I can see buttons "UNINSTALL / OPEN"
This is exactly what I want to do.
4) [FAILED] Install APK Version 2 via ADB, and cannot update via Google play store. (In google play page of my test app, I can see buttons "UNINSTALL / OPEN"
Some of my colleague said this case is possible, but I couldn't achieved.
I found difference between signed APK and Google play extracted APK. By binary compare, many file was different.
Especially AndroidManifest.xml, this information was added in Google play-extracted apk.
<meta-data
android:name="com.android.vending.derived.apk.id"
android:value="1" />
It was possible to update old version apk that was downloaded from google play publish page.
I found below answer, but it seems not working in my case.
Will apk installed manually (not from play store) receive notification when update becomes available?
you will receive updates / see the app in the Google Play "installed
apps" tab only if the two conditions will take place:
the APK package name is the same as the one uploaded to Google Play
the keystore used to sign the app in the play store is the same
keystore used to release the apk you install manually.

In order to be updated by Play, the app has to be in the "User's library". This is a hard concept, but basically comes down to "has the user ever installed it from Play on any device". If the user has it in their user library, and the signature is the same as the signature on the Play store then the app will update.
If the user has never installed it from Play, then Play won't update it.
So what you want to happen won't happen, unless the user has previously installed it from Play on any device.

Related

How to upgrade Android app from official version to test version

I currently use the inner sharing of the play console to release new versions to testers. (They have exactly the same package name and signing key.)
However, the testers responded that they could not upgrade from the official version to the test version, so the app update process could not be tested.
If I install the app first and open the inner sharing link, the play store displays
"A public version of this app is already installed on this device. Uninstall it and try again"
Is there a way to upgrade directly from the official version to the test version in the play store like installing an apk? (not uninstall app)
For example, the internal test of the play console may be possible?
Thanks for your help.
If you're using internal app sharing https://play.google.com/console/u/0/internal-app-sharing/ to share your app, then it won't work. Internal app sharing is used to quickly share an app with your internal team and testers, it doesn't undergo google play review process.
So you can't update your public version using this.
You can however, use different play console tracks for uploading your apps and they will support updates. Here https://support.google.com/googleplay/android-developer/answer/9845334?hl=en is the link for setting up open closed or internal track. When you upload your app to any of these tracks, they'll go through the google review process and once the app is available on playstore, testers can easily update it.
In case you don't want to wait for review, and want to use internal-app-sharing only, then, you can create 2 different versions of your app(different version numbers) and upload both of them to internal-app-sharing. You can then share the 2 links to your testers, and your testers should first install the lower version app and then open up the link of higher version number apk. It'll show the update button.
Edited(Thanks to #pierre): Although it looks like you're uploading artifacts signed with the same key, the Play Console actually re-signs the artifacts in the internal-app-sharing to avoid distributing an app signed with the production key that hasn't gone through their review process.

Google Play not updating internal app automatically

I have an app that is released only as an "internal test" on the Google Play store
When I go to the Google Play store on my phone, the app does not show up at all, under "installed" or "updates" or any other tab
When I click the 'internal testing' link (the one that Google Play Console says to give to internal testers), it opens Google Play and shows my app's store page. The store page shows the correct latest version, but I'm unable to install it. My only options are "uninstall" and "open" (which opens the currently installed old version of the app)
I have "enable auto-update" enabled from the Google Play store page
I've waited two days
I've made sure the app is closed completely on the phone
As far as I can tell, there's no way to update the app without uninstalling it, which deletes all the app data. How can my testers update the app?
Updating seems to be broken for apps that Google has not reviewed yet, which they don't do for internal apps.
I released the app to closed beta, causing Google to review it, and stopped using "internal releases" altogether. I'm not sure which of the two was the fix, but now auto updates work.
I think I've found a workaround. It's now worked 3 times out of 3, so fingers crossed.
First, uninstall whatever version you have on your device.
Then visit the link provided from Google Play Console on a PC instead, and from there you click the 'If you don’t have the app installed, download it on Google Play.'-link.
Once there, press install, and choose your device.
This way, the latest version of the app is installed on your device, and not some random version; like seems to be the case, using the Play Store on the device.
Not ideal, but it works :)
Requirements for getting the Internal Update on Play store
Add your same email Account in internal testing which you used as in play store.
Join Beta Testing program which will be visible when you search the same app on play store.
Turn on internal-app-sharing on playstore - > PlayStore->Setting->About ->PlayStore-version(press 7 times), Turn On Internal App Sharing in General Settings of play store.
Wait for some days & Get the app link from play store console to get the update version

Is there a difference between google play app install vs local install on an Android Device?

Is there a difference between Google Play install vs local install on an Android Device?
I have a Google Play installed application and which is set up and in use, so Xamarin.Essentials.Preferences are setup. I then installed an update to that application from the beta track. Upon starting the app, Xamarin.Essentials.Preferences are not being picked up.
I had to change the keys associated with the preferences compared to the old version of the application. The new version application, on start, updates the keys and continues as normal.
I know the update code works as expected, as when the app is installed locally from an apk (not from google play), it works as expected when the updated apk is installed.
Basically, what I want to know is:
Does Google Play Services / Play Store, remove Xamarin.Essentials.Preferences at install/update? Does this only occur on the beta track?
Is there a solution to this issue? I would like to keep the end-user from having to reconfigure/re-login to the app on an update.

Doesn't show "Update" button in playstore

Here I am developing Android app with android studio. I turned my google account into a google developer account and then published my app in the play store after signing that app within my computer. After a month I published an update for that app with the same package name. I also upgraded the "Version Name" & "Version Code". I checked the the situation by using a phone which has the initial release of the app, but after I released the update the specific page of that app in play store doesn't show an update button ("open"button is there).
How can I correct this?
Thanks.
If your phone with the "initial release" of the app didn't install it from the Play store, then the Play store won't update it. I suspect this will be your problem.
The Play store will only update apps for which it did the initial install (to avoid treading on the toes of app developers during development or other app stores).
The way it checks for "Did the Play store install this" is "Does the signature of the app match the signature in the Play store" and "does the user on the phone have a record of install from the Play store on their account on any device".
After updating an app on play store it can take several hours to be available on play store. Just wait for couple of hours.
So first of all you have to make sure the following three points are in place:
You are installing exactly the same variant from android studio compared to the one you published on google play store.
The app you installed from android studio has a lower "version code"
You are using exactly the same signing key.
Most likely the third point is what is stopping this from working. The problem is that if you are using app bundle as publishing format, that apk is not created yet when you upload the bundle and it will only be create and SIGNED at a later the stage, when the app is about to be distributed on a specific device.
Unfortunately, there is a chance, like in my case, that the signature still will not match perfectly even if you used exactly the same key to sign the app, reason being that if you have singed up for Google Play Store signing, google will add some metadata: "It does however insert a minuscule amount of metadata that helps with verifying the source and integrity of the distribution. This metadata comes in two flavors: For all apps uploaded to Google Play, Play has been adding security metadata after the signing block to enable features such as authorized P2P app sharing. We announced this originally in a blog post in 2017. For apps uploaded as app bundles, we will improve this security by introducing what is called a source stamp. This source metadata is inserted into the app’s manifest by bundletool. When the APK is generated on Play’s server, it’s also signed with a Google key in addition to your app signing key."
I yet have to solve this issue unfortunately

Android, sideloading applications and keep them up to date via Google Play

My company would like to give an Android device to a group of our selected customers.
Doing that, we would like to provide users with our mobile app. The app is already on Google Play, but we would like to avoid users downloading and installing by themselves. We prefer to give the device ready, with the app already installed.
We found several ways to manually install an APK on the phone without having to login to the market. But it seems that doing that, the user will not be able to update the app via Google Play, as the app would not be recognized as installed.
Any idea?
As per January 2015, this appears to be impossible. Here is the response I got from Google Play Developer support:
Side-loaded apps do not update via the Play Store. If you would like the app to update, you will need to uninstall the app on your phone and reinstall the app via the Play Store.
I wonder if anyone found a way around this?
To summarize the answer from #Android-Developer and OP's comment discussion:
Google Play recognizes the app signature of APKs regardless of the installation source. As long as you use the same package name and keystore when generating your APK, Google Play will be able to detect newer versions and trigger an update.
To install the app without logging in to a Google account, enable the "Install from unknown sources" option in Settings. You can disable it once the installation is complete.
You may install Titanium Backup if your phone is rooted, then long press on your side loaded app package and select "Attach to market" option. Now you may receive updates via Google Play.
I don't recommend this, I mean never install cracked or patched apps because of copyright or security risks, but installing a Modded version of Google Play can make patched side loaded apps to be upgraded after attaching them to market via Titanium Backup. This is not needed for purchased apps because they are registered in your Google account, so attaching to market will be enough.
To get a MANUALLY INSTALLED APK to show up in the Google Play Store in the UPDATES or INSTALLED section, do either of the following:
1.) Manually install the APK with the SAME APK filename that Google knows the app as (i.e. from the APK download site like APKMirror.com).
2.) If you CHANGED the APK name when you saved it, it will NOT show up in Google Play Store as an installed app.
However, IF there is an update to the app, you will have to do a ONE-TIME search for that app in the store and update it. It will give you the UPDATE option on the app's store page. Once updated via the store, it will show up in the store's Installed / Updates section from now on.
Why does this work? Because the UPDATE will be done thru the store and the APK name it's using during the update process is what Google knows the app as.
If there is NO update, do option #1.
I always add the App name and version info to the front of the filename so I know what it is for later use (because if I'm manually installing, I'll probably be saving it for multiple / future devices).
I also keep the original name at the end, so I can rename it back to the original name if needed. Android is the only O/S I've seen where the filename matters during the install process.

Categories

Resources