I know on iOS that if you raise the min iOS version on a release it means that any devices that are unsupported can still download the previous application that does support them.
Is there such a thing on Android or is at as soon as you release the new APK, the old one is removed from sale?
Whether the APK is removed or not depends on you - if you keep both versions active, GP will resolve which one should every user get - those with newer APIs will get updated one, those with old APIs will still be able do download previous version.
If you are really into "separate API", read this article.
EDIT:
I believe similar question was asked here.
If you raise sdk version user with old sdk will not be able to download it. If user has already installed apk with old sdk and you update apk in gplay, he can use it while he doesn't uninstall it manually.
Related
I have built an android tablet application which is installed only from my web site - manual install.
I will need to be able to provide updates to existing users through the same site - without obliging users to uninstall the existing application.
What do I need to change in my (eclipse) project to permit this ?
Simon -
Apps are designed to be upgraded in place on Android. All you need to do is ensure that the version number of the app being installed is greater than the previous version.
You can still provide debug releases, simply increment a portion of the version to reflect that change and your users can keep getting updates. Otherwise, you may want to have an explicitly Debug and Release version that can be installed side by side and not conflict with each other, but that may be more trouble and confusing than its worth.
background:
My current app is already running on Google play with minSdkVersion=8. As every developer knows Froyo and Gingerbread should have died a couple of years ago, and finally the product team on the company allowed us to drop support for them and go to API 15. Yeah.
Approach:
The idea is to leave this last stable version still available for Gingerbread users to download, so what I'm trying is:
create a build with minSdkVersion=8; maxSdkVersion=14; versionCode=195
create another build with minSdkVersion=15; versionCode=250 (skipping a few version codes in case we NEED some emergency maintenance)
the issue:
it all builds fine, but Google Play does not allow the multi-apk upload with the following error:
This configuration cannot be published for the following reason(s):
It is forbidden that a device upgrading from API levels in range 8-14 to API levels in range 15+ should downgrade from version 195 to version 194
question:
is what I'm trying to do something that Google Play does automatically?
is it possible to do what I'm trying to do?
if possible, how?
The problem is maxSdkVersion=14; versionCode=195. This means that if someone has a device running API level 14, and they upgrade that device to 15, the version of the app they have installed (195) will not run.
Try omitting the maxSdkVersion. I'd hope that people in this scenario would then continue to be able to use the 195 build of the app, and then Google Play should upgrade it to the 250 build next time it performs its check.
Google Play does this automatically - users will receive the latest version that is compatible with their device so there's no need to publish your version 195.
As stated in that error, you should continue to have 15+ versions of the app have a higher version number than <15 builds - this will ensure that users only ever upgrade their app to maintain compatibility.
This error message sounds like Goole Play doesn't "see" your second APK (version 250) for API 15+ and it "believes" users with 15+ will have to downgrade to older version 194 when new version 195 gets installed. I never tried to upload multi-APK projects, but documentation says you need to switch into "advanced mode" (a button in the top-right corner) to upload multi-APK. In this mode "upload new apk" works a bit differently. I assume this might be the issue.
I have updated new version of apk on Google Play. But still in statistics I see people downloading older version, how is that possible ? Has anyone encountered this problem ?
Regards
Are the new APK's requirements the same as the old one? It can come from there.
For example, let's say the old APK's minSdkVersion is 8, and the new one is 9. Then users with SDK version 8 will still be able to download the old APK.
As minipif has said, you may have changed minSdkVersion in your manifest, or some other attribute e.g. supports-screens.
If this results in you decreasing the number of devices supported in your new apk then, by default, Google Play will keep hold of the old apk and deliver it to devices not supported by the new apk (but supported by the old apk).
You can override this by simply unpublishing your old apk in the developer console.
Whether you replaced that with older apk by switching to new apk update?
If yes, it takes couple of hours to update in android market.
Play Store app has cache. You can delete cache from settings.
I got it. This is because mobile app stores cache. If you go to GOOGLE APP -> My Apps -> ALL and install from that cache it will also download and install the apk which u unpublished long back in past. Big bug in Google....PHEWWWWWWWWWW...
i'm new in android developing. (and in developing after all)
Here is my problem: If i install my android application onto my mobile device or AVD, i want it to check the current app version number and if it's lower than the one i want to install currently then install it, and if it is higher , then alert the users that they already use the latest version.
Because now when i install the .apk file, it just installs the app again and nothing happens.
Is it possible to develop this?
Best regards,
weeyas
The install process is managed at the system level, so your application has no control over it. As per the versioning guide, the Android system will only allow you to install updates from the same or newer version codes (i.e., version 1 can be replaced by version 2, but version 2 can never be overridden by version 1 unless you do a complete uninstall/reinstall). This applies to both Google Play updates and sideloading APKs yourself.
I don't know if it is possible if you try to install application from .APK file. However, you will not be able to publish the newest apk to Google Play if it has the same or lower version number than the current one.
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.