I have an application already in Google play and I'm developing a new version for it.
If I install mine new version with Google play version already installed it gives me INSTALL_FAILED_VERSION_DOWNGRADE. I changed version on manifest but the error is the same.
I need to have the official version installed because the new version changes some old data and I want to test if it's ok.
How could I proceed?
You need to make sure that versionCode is increased. It is a numerical value and each version has to have it higher than the previous one (not necessarily by 1, just higher, you can go, e.g. from 10 to 20).
versionName is what is displayed to the user in Google Play. It can be any value, necessarily numeric. You can even say "next version" or "the most awesome version".
android:versionCode="4" <- this one needs to be increased and is numeric
android:versionName="1.0.4" <- this is for display to the user, this is not numeric
Related
I sign the APK, I choose the type of Debug, I distribute it directly, I will not upload it to Google Play.
I install. But the problem is that I try install the same APK back, it does not install writes.
1) I tried to delete, delete for all users and again, all in vain. One version helps, I raise version code to 2, version name to 1.1, sign and roll back this data and sign again. Only then installed.
2) Disabled “Check security threats” on Google Play, and works fine
3) Even if you put it on Google Play in closed testing and from there download the APK and install, the problem disappears
Then again, install the same APK does not work.
Maybe someone came across this, tell me?
If you are using ADB, you need to use the -r flag,
here is the docs: https://developer.android.com/studio/command-line/adb
Here is the command:
adb install -r path_to_apk
When installing from a downloaded file the versionCode always needs to be higher than the one currently installed to allow for a new installation.
versionCode — A positive integer used as an internal version number. This number is used only to determine whether one version is more recent than another, with higher numbers indicating more recent versions. This is not the version number shown to users; that number is set by the versionName setting, below. The Android system uses the versionCode value to protect against downgrades by preventing users from installing an APK with a lower versionCode than the version currently installed on their device.
The value is a positive integer so that other apps can programmatically evaluate it, for example to check an upgrade or downgrade relationship. You can set the value to any positive integer you want, however you should make sure that each successive release of your app uses a greater value. You cannot upload an APK to the Play Store with a versionCode you have already used for a previous version.
Reference: https://developer.android.com/studio/publish/versioning
find the project in Your projects_folder for example
and go into your Project which is not install........
go into the gradle/.....and find the apk folder and delete it
MyComputer/D/Newfolder/.....
2.go into the gradle/.....and find the apk folder and delete it
3.After all run project again
I have :
an old app with version '1' published in Production a year ago on Google Play. Target SDK 22.
a newer app with version '2' actually published to Production with a rollout rate of 20% (default). Target SDK 25
Question :
Is the old app still be visible and downloadable for any user/device, or is the app with version '1' deactivated in general ?
Target SDK does not affect app delivery, just min/max SDK, so that's a red herring.
The short answer: at the moment 20% of your users will get version 2, 80% version 1. When you finally increase rollout to 100%, version 1 will be automatically fully deactived.
The longer answer: In more complicated situations app targeting comes into play. This does not apply in the situation in your question. Suppose version 1 was minSdk 22 and version 2 was minSsk 25. Each user would be randomly put in a group "rollout" or "old" in the ration 20:80. If they are in the group "old" they will get version 1. If they are in the group "rollout" then their Sdk would be checked. If it was >25 they would get "rollout". Otherwise they would fallback and get "old". When rollout reaches 100%, users with SDK <25 would no longer be served anything.
I have an app published with version 1.2 in Play store. Now new version 1.4 is availbale to upload. Can by any means ask play store to make 1.4 available only for fresh installation and not available for an update from 1.2 to 1.4 ?
Set the version code lower than the version numbers of 1.2 to 1.4. You can change the version code in the module level build.gradle.
versionCode — An integer used as an internal version number. This number is used only to determine whether one version is more recent than another, with higher numbers indicating more recent versions. This is not the version number shown to users; that number is set by the versionName setting, below.
The purpose of the version code is to determine whether or not it is a latest one or not. If the number is lower than the other numbers then play store doesn't consider this an update to the earlier version and won't notify the users about the update.
Already installed app users won't see an update button if they open your app page but new users can download the latest version 1.4.
For more info on versioning your app take a look at official docs.
As I was developing, I published to SDK 21, Lollipop, and I'm not able to use it on my KitKat device. The applications are really simple and I only used the SDK for the animations and for material design, however two things come up when I try and make changes to the play store.
I'm not sure what to set for my app. There is target SDK, minimum sdk, and such. I set all of these to 21 to 22. Now, if I try and publish an app that uses SDK minimum 11, Play gets mad and says that it cant roll back on devices. I don't care to update the users phones. Its a simple application that doesnt require that, but it won't let me update and replace the primary apk.
What should I do? What should I change? Apps are posted here under Thered Software on Google Play.
You can publish multiple apk's for different api-levels: http://developer.android.com/training/multiple-apks/api.html
First you should make sure you understand the difference between the compile SDK, minimum SDK, and target SDK versions. These are explained well in What is the difference between min SDK version/target SDK version vs. compile SDK version?.
Now, if I try and publish an app that uses SDK minimum 11, Play gets mad and says that it cant roll back on devices.
It would help if you posted the specific error message that the Play Store shows you, but it sounds like you are trying to upload an APK with a lower version code than an existing version of your app.
For example, let's assume you previously uploaded an APK that had a min SDK of 21 and you labeled that APK as version 56 of your application. Any version you upload now needs to have a version code of 57 or higher. This is because Android uses this version code to determine which version of an application is "newer."
This is specified in your build.gradle, as below:
android {
defaultConfig {
versionCode 56
}
}
Change your minsdk requirement in the manifest.
Do a new release (don't forget to increment the version code).
That is all.
I have uploaded two APK files into the Google Play store. One is a newer version and one is an older version. The newer version is the active one since it has a higher versionName and Code. Now I found some bugs in the newer version and I want to delete it from the Play Store and activate the older version. Google Play won't let me deactivate the newer one and activate the older one again, since it has a lower versionName and code.
The problem is that I'm am not the developer and did not build the app. The developer is in another country and it is difficult to get hold of them.
What can I do to reactivate the older version again? I know one solution would be to change the versionName and Code. I only have the apk file, can I change those details in Eclipse with only the apk file and very little experience in eclipse or developing android apps?
Thank You
You can't rebuild a new version of an apk from the apk itself.
Have the app developer do the following:
Rebuild project in its previous state with higher version number (must be higher than all previously submitted versions)
Resubmit
From Google's Android "Developer Console" page:
Note that rollbacks aren’t supported due to the app versioning
requirements of the Android platform. If you need to rollback,
consider launching a previous APK with a new version number. However,
this practice should be used only as a last resort, as users will lose
access to new features and your old app may not be forward-compatible
with your server changes or data formats, so be sure to run alpha and
beta tests of your updates.
A good strategy is, when creating a build, modify the manifest to build say a version 2.0 = 39 AND again 2.05 = 45 and generate these two apks which will obviously do the same thing.
Later, when build 2.01 = 40 is in production and you find an error, you can jump back to the old version by uploading the 2.05 = 45 you created earlier.
You have 5 opportunities to back track while releasing 40, 41, 42, 43 and 44 to go back to earlier functionality!
Do this for each build and you can always go back to an earlier version which has been pre compiled and built but with a higher version number than currently in production.
You will not be able to change the APK file without having the signing certificate.
You should be able to revert to an older version, assuming you didn't change the level of API support.
Presumably, go to the Dev console, select the APK tab, hit the "Advanced Mode" option, deactivate the current version and hit "Reactivate" for the version you want.