Consider the following scenario,
I have a published app targeting min android version 16, and I upgrade this version to 21.
What happen to users that have the app installed in android versions below 21?
Users still would be able to use the app, but do not receive updates, or the users got their app uninstalled?
Devices not compatible with your current release will stay on the latest compatible release, until the user uninstalls your app. After that, it is not possible to install the app on that device again, aside from sideloading it.
Noteworthy is that if you later provide an apk compatible with API 16, old installations can be updated again.
This mechanism can also be used to e.g. serve different apks to tablets and phones.
Related
In August 1, Google Play requires new apps to target at least Android 8.0 (API level 26). But in appgyver, I notice the latest available version is 4.5.3. Is there any way to upgrade it? Thanks!
I having the same issue, which is the maximum API level which appgyver supports is 21 only. GooglePlay required at least API Level 26 on August 2018 onward.
AppGyver just officially answered this question here.
TL;TR AppGyver is using Crosswalk, an Intel product, to build Android apps, and Intel has shut down Crosswalk over a year ago, now it is not possible for AppGyver to update their Build Service without rewriting the entier Android part, which would cost them too much, Supersonic and Steroids being depreciated, Android is officially abandonned by AppGyver, the Build Service will stay as is for apps that are internally distributed but won't allow to build apps destinated for Play Store.
Edit: I found a solution that allow me to get the app accepted on the Play Store, but app will crash on Android 8.
I then tested to install my app from the Play Store on a Android 6 with success but as we could expect it crashes on Android 8, the edited Target SDK number dupes the Play Store so it lets the APK in, but in the end it hasn't been built with Android 8 capabilities, so it won't work on that version.
All I had to do was to import my APK in APK Icon Editor, go in the Properties tab, change the Target SDK value to 26 (be sure to keep a lower value in the Minimum SDK field as it's the one telling what Android version can actually instal your app, if it's high then older phones won't have access to your app), and click on Pack APK to generate a new signed APK that is accepted by the Play Store!
Its as easy as this:
I then tested to install my app from the Play Store on a Android 6 with success but as we could expect it crashes on Android 8, the edited Target SDK number dupes the Play Store so it lets the APK in, but in the end it hasn't been built with Android 8 capabilities, so it won't work on that version.
Edit: it seems like it also crashes on Android 7 :(
Appgyver is constantly working on their platform and bringing latest updates. hopefully soon this issue will be resolved as well.. try contacting their support
I want to publish a new version of my app that requires Android 4.4. I know I can do this adding the following to the manifest:
<uses-sdk android:minSdkVersion="19"/>
(19 is the SDK version for Android 4.4 according to this)
But I'd also want people with Android versions older than 4.4 to be able to download an older version of my app. How can I accomplish that, if at all possible? I know iOS does that automatically: If someone has an older iOS version than the required for an app, then an older compatible version
of the app id downloaded instead. Does the Google Play Store have a similar "backwards-compatibility" feature?
A Google Play release can contain multiple app bundles! When you prepare a release, apart from adding the new fresh and shiny app bundle (for the newer devices), also add the legacy app bundle from the app bundle library (for the older devices).
You can then verify which versions are active/inactive in app bundle explorer (click the version dropdown).
Google Play will manage which version to offer on which device on its own (prioritizing the ones with higher version codes, in case multiple are supported).
Yes, user below version 4.4 will get the older version of your app.
Just keep the older version in ACTIVE state in play store.
Use gradle instead this tag in manifest.xml
minSdkVersion 16
targetSdkVersion 23
I have very specific requirements wherein I would like to provide our latest version apk access to user through open beta testing and want to stop the version lying on prodcution. Challenge here is how can migrate user from production to beta new version?
Let's say I deploy version 10.1 at open beta and want to migrate existing user which are already using production app. If possible how can I do that?
How can I stop production version as restricting features?
No - it is not possible to disable a version of an APK, or to force users to upgrade.
From the Android Developer Docs on app versioning:
The Android system does not use app version information to enforce
restrictions on upgrades, downgrades, or compatibility of third-party
apps. Instead, you are responsible for enforcing version restrictions
within your app or by informing users of the version restrictions and
limitations.
The closest you can get is checking the application version on the server side (either by manually passing the version or by inferring from the request message format) and restricting use of your API to newer versions of the app.
What happens to existing users with the app installed when minSdkVersion is raised and their SDK version is less than that?
Do they still get the update from Google Play with a subsequent crash? Or do they stop getting updates from Google Play?
Below happens on minSdkVersion change
On apk upload, Google plays warns you on minSdkVersion telling how many users will be affected.
Existing users lower than minSdkVersion won't get update and cannot
see app in PlayStore
Existing users lower than minSdkVersion, if they uninstall, cannot
reinstall the application.
I suggest you use multiple apk option in PlayStore and continue to update your newer apk. Just keep the old one as it is.
For example, you can publish your application with one APK that
supports API levels 4 - 7 (Android 1.6 - 2.1)—using only APIs
available since API level 4 or lower—and another APK that supports API
levels 8 and above (Android 2.2+)—using APIs available since API level
8 or lower.
For more, read the android documentation on multiple apk support.
They will not get an update and it won't show up on Google Play for them any more. The version they have installed will remain on their device.
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.