I have recently included android wear support in my app but when I went to publish it today I was made aware my earlier version would be archived. My earlier version was targeting api 16 to include as many devices as possible.
I was hoping if a user doesn't have the latest devices capable of running my updated android wear version then they would get the earlier version I have published.
What is the correct procedure to enable this to happen please?
Regards
It is possible to keep your app supporting API 16 while adding Android Wear support. The Google Play Services library runs on many older devices, and it will do the right thing to ensure that your code will not crash. Since an old Gingerbread phone cannot support Android Wear, you will just get an error code when you try to make use of Wear functionality, and you can just handle it gracefully with whatever way is appropriate for your application.
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
Reviewing the reports on the Google Play Console for my app, I can see that ~150 devices among the active installations are running Android versions 4.1, 4.2, and 4.3 while I explicitly configured my build.gradle file with minSdkVersion 19.
From what I know those versions have different API numbers 16-17-18 and all belong to the Jelly Bean family.
How can this happen? Am I missing something?
You may had set minSdkVersion to 16 at the time of your first few release to Play Store, thats why many users had been able to install your app on Android versions 4.1, 4.2, and 4.3 but they never updated your app (may be because their auto update of off or some other reason)
In our apps I see a some background radiation from crashes on rooted devices that have older unsupported API levels. The numbers are small and it's not anything we are supporting, so I don't really care about those.
If the device is rooted, one way to bypass min SDK restrictions is to edit the build.prop file to lie about the device's API level.
This is a beginner question, but what are the steps needed to get my app to run on more devices? I noticed that my new update (on beta) is running on fewer devices. Do I just need to update the targetminsdk version in build gradle or is there anything else I need to do? I think I should be aiming for minsdkversion 18?
My versions in gradle are here
compileSdkVersion 23
minSdkVersion 21
targetSdkVersion 22
Min sdk version : Is the earliest release of the Android SDK that your application can run on. So this is what you want to change if you want more devices supported for your app.
Target sdk version : The version your application was targeted to run on. Ideally this is because of some sort of optimal run conditions.
Android Developers forum says :
The dashboard for Platform Versions is updated regularly to show the distribution of active devices running each version of Android, based
on the number of devices that visit the Google Play Store. Generally,
it’s a good practice to support about 90% of the active devices, while
targeting your app to the latest version.
For more details, go through : Supporting Different Platform Versions
For API 18 : your app will run on approximately 76.9% of the devices that are active on Google Play Store.
For API 21 : your app will run on approximately 40.5% of the devices that are active on Google Play Store.
Now that is a huge difference, that you may not really want for your app. So you need to weigh your pros and cons of having Latest API support to getting more users. I would infact recommend you to go for API 18 instead of 21, unless you have some very important functionality that necessitates API 21 and above and can't be done without.
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 published an app to Google Play, but some of my users are unable to find it using their device.
The min apk for the app is 11 (Android 3.0).
When someone uses for example a Samsung Galaxy SII with Android 4.0, the app can't be found because the initial release of the SII was with Android 2.3. With a SIII it's no problem.
In the developer console, the console automatically checks to see which devices are compatible when uploading the apk. As developer, I can disable devices for download, but not enable devices.
Does Google Play check the current version on the device or does it uses the versio, of initial release?
How can I reach as many as possible devices? When I lower my min APK in the manifest, I get compilation errors.
Thanks in advance
That's a really good question. Lowering your minSdkVersion or publishing multiple APKs is the best solution to reach many devices, your problem with this approach is that probably you are using some API features that aren't present in older APIs so that's why you're having compilation problems.
http://developer.android.com/google/play/filters.html#manifest-filters says:
Example:
The manifest includes uses-sdk android:minSdkVersion="3", and the
app uses APIs that were introduced in API Level 3. A user is searching
for apps on a device that has API Level 2. Result: Google Play will
not show the app to the user.
So I assume google will filter based on the current API version.
Can you post your app link?