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.
Related
I'm working on an app which is in Beta (no released version in production yet).
I've uploaded a new APK yesterday. When doing that I got a warning as I changed the minSdkVersion from 16 to 19. I made this change on purpose so it was expected.
On the Google Play Console, it now shows that a new APK has been added and the old one has be deactivated, which is what I want.
However, the Play Store now display 'Varies with device' under the 'Requires Android' section of the app information.
So it seems the Store has kept the old version for the people having Android between API 16 and 19, like if I wanted Multiple APK.
How to solve this issue?
EDIT
I've released a new Alpha version to get rid of the old one which was still there and 'shadowed' by the Beta (this Alpha supported Android from API 16), and then promoted it to Beta. So now I have no Alpha, still no app in production, and only one Beta APK with minSdkVersion set to 19.
This Beta is now displayed on the Store page, however both 'Requires Android' and Current version still display 'Varies with device'.
After contacting Google support, here is their answer:
I looked into your matter further and the reason why you can see the
'Varies with device' under 'Requires Android' is because the app is
unreleased.
Please note that if the app is published then the section for
'Requires Android' will be updated with the relevant information.
So I'll see if the values are correctly updated when I'll release the app.
Currently, I have a production app, which is using SDK 21.
Since it requires a huge engineering work, to port the app to SDK 23, we make another unstable Alpha release, by using SDK 23
Today, I need to make a critical bug fix release, for our production app.
However, since we have an Alpha app with SDK 23, it prevents us from publishing the new production app, which is using SDK 21.
I try to de-activate Alpha testing, but it just won't help. Please see my screenshot.
Anything I do, so that I can publish my critical bug fixed production app, with SDK 21?
Thanks.
I get pretty useful advice from ianhanniballake
You upload a new prod build to prod (target API 21, higher version
than current alpha version number - what you're showing us) and a new
alpha build to alpha (target API 23, higher version than new prod
build), then publish both simultaneously.
That way alpha users get updated to a new API 23 build and prod users
get updated to a new API 21 build and importantly no API 23 using
alpha build is offered an API 21 build.
alpha > beta > prod always - remember it is set up so you can promote
alpha to prod eventually (which wouldn't work if prod's version number
was larger than alpha)
In short, switch to advance mode, upload 2 APKs which targets different SDK. Make sure alpha version code is higher than production version code.
A very lengthy explanation can be found in http://developer.android.com/google/play/publishing/multiple-apks.html
Also, don't forget to click on deactivate button, of current alpha and current production before publishing.
Just like Android give android version distribution worldwide?
I want same way google play-service distribution.
On the website, Google mentioned the only year of release.
Actually, we are using google map in our app so we wanted to confirm what should be our minimum play-services version so that it should work even if the user has not updated play-services.
My app minimum version is 15.
Afaik there is no official maintained distribution information like for the different Android OS versions.
But there are some hints about the distribution:
In 2014, Sundar Pichai made an official statement about the play services in the Developers keynote:
"Google Play Services ships every six weeks and 93% of our users are on the latest version of Google Play services across all versions of Android. In fact by shipping every six weeks we can, in many ways, iterate faster than the typical OS release cycle."
You can watch that on youtube, at around minute 45 and 35 seconds.
Since the play services are updated by the Playstore itself without requiring further interaction or confirmation of the user, I think you can assume that most users are quite up-to-date. So if you set the minimum required version to a version that was released some months ago you should include most of the users.
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 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