From Google Play guides I notice that from 2 November 2020, app updates must target Android 10 (API level 29) or higher.
When you upload an APK, it needs to meet Google Play’s target API level requirements. New apps must target Android 10 (API level 29) or higher and app updates must target Android 9 (API level 28) or higher.
Every new Android version introduces changes that bring significant security and performance improvements as well as enhance the user experience of Android overall. Some of these changes only apply to apps that explicitly declare support through their targetSdkVersion manifest attribute (also known as the target API level).
It means that my new application version (updated one) could still target Api Level 28 ? Is this allowed only until November 2, 2020 ?
Thanks.
Up to November 1, 2020, you can update your application APK targeting API level 28.
From November 2, 2020, APK updates must target API level 29 i.e. Android 10
Also:
Wear OS apps are not subject to the API level 29 requirement.
Once these requirements come into effect, the Play Console will
prevent you from submitting new APKs using older target API levels.
For more infos:https://support.google.com/googleplay/android-developer/answer/113469#targetsdk
Related
Recently I read a book about android which says that Starting with august 2019, Google play will only accept apps built using Api 26 or newer. But recently we published android app that has minimum Api level 23 and it is successfully published. Can anyone tell whats the scenario, or the documentation in the book is wrong?
They are not talking about minSdk , they are talking about targetSdk or compileSdk.
Notice that I used "or" because your targetSdk can not be higher than your compileSdk.
When you increment targetSdk number, you have to comply with the new api and rules enforced however using an old compile/target sdk will let you use the features in the same way as they worked in earlier versions (which is one of the root causes of security vulnerablities). That is why they placed the restriction so every app is forced to use 'new way of doing things' rather than old.
For example, Before Android 5.0, permissions were granted when app was installed but then it was changed so now you have to ask permissions on runtime. If you target Sdk api lower than Android 5.0, you don't have to do anything and it will work on newer devices as well. However, if you target api higher than Android 5, you must ask for permissions on runtime or the newer sdk code throws an exception.
What this means is that your target API has to be their minimum (in this case 28), but you can still set your own minimum API to whatever you want to allow backwards compatibility.
When you upload an APK, it needs to meet Google Play’s target API level requirements. Starting August 1, 2019, Google Play requires that new apps target at least Android 9.0 (API level 28), and that app updates target Android 9.0 from November 1, 2019. Until these dates, new apps and app updates must target at least Android 8.0 (API level 26).
https://developer.android.com/distribute/best-practices/develop/target-sdk
I have an app that targets 28, but the min API level I want is 18. It still allows me to upload the app because it targets 28.
It means that you have to set in the build.gradle file
targetSdkVersion 28 //or later
Official doc:
When you upload an APK, it needs to meet Google Play’s target API level requirements. Starting August 1, 2019, Google Play requires that new apps target at least Android 9.0 (API level 28), and that app updates target Android 9.0 from November 1, 2019. Until these dates, new apps and app updates must target at least Android 8.0 (API level 26).
Keep in mind that:
minSdkVersion <= targetSdkVersion <= compileSdkVersion
If you want to have more details about minSdk, targetSdk and compileSdk I suggest you reading this blog.
When I try to upload my signed APK with target API level 23 I receive this error:
Your app's current target API level is 23, but the minimum target API level must be 26 to ensure that the app is based on the latest APIs optimized for security and good performance. Change the target API level of your app to at least 26.
But if I rebuild with target API level 26 I receive this error:
This version cannot be implemented because it does not allow existing users to upgrade to the latest APKs added.
How can I ignore users upgrade?
The error:
This version cannot be implemented because it does not allow existing users to update to the latest APKs added.
It was caused by a lower version code than the one currently in production and was unrelated to the API version. I have increased the version number and I can safely use the API level 26
Understand Google Play has a new API requirement:
Google Play will require that new apps target at least Android 8.0
(API level 26) from August 1, 2018, and that app updates target
Android 8.0 from November 1, 2018.
Previously I uploaded an APK that was has the following values:
Afterwards I made an updated before November 2018:
I plan to do an update soon and would like to ensure I am meeting all requirements beforehand.
Does it mean I have fulfilled the new API requirement? Should I be looking at API levels or Target SDK? Is API levels referring to the minimum API level?
You could check your android manifest for the following lines:
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="26" />
As long as the target is 26 and above, I believe it should work fine.
I have published an apk recently using this without any issues.
You may refer to: The problem about Google Play's target API level requirement , in which someone has explained the min and target version.
I don't know if this is a correct place where ask the following:
I have read on the google play developer console that :
In the second half of 2018, Play will require that new apps and app
updates target a recent Android API level. This will be required for
new apps in August 2018, and for updates to existing apps in November
2018. This is to ensure apps are built on the latest APIs optimized for security and performance
and
Google Play will require that new apps target at least Android 8.0
(API level 26) from August 1, 2018, and that app updates target
Android 8.0 from November 1, 2018.
What does this mean? Does this mean that I will not be able to develop applications compatible with versions smaller than 8.0?
If so, how can bug fixings / new features be introduced within existing apps with versions other than 8.0?
This would result in a "death" of all devices with version other than 8.0 ... Or is Google thinking about releasing android oreo for all devices on the market?
*************** EDIT ***************
The doubt arises from this message on my account of google developer console:
The translation is :
Starting from August 2018, the new apps must minimum target Android 8.0.
Starting in November 2018, app updates must target version 8.0
The minumum target is :
An integer designating the minimum API Level required for the
application to run.The Android system will prevent the user from installing the application if the system's API Level is lower than the value specified in this attribute.
Bad interpretation of the message ?
What does this mean?
What it means is, you should ensure you have set targetSdkVersion to 26 in your build.gradle and your application is compatible with Android O behavior changes.
Does this mean that I will not be able to develop application compatible with versions smaller than 8.0?
You can set minSdkVersion lower than 8.0.
This would result in a "death" of all devices with version other than
8.0 ... Or is Google thinking about releasing android oreo for all devices on the market?
The distribution rate for Android O is still around 6%, which means older versions still constitute around 94%. They cannot implement drastic changes for this reason. Older OS version will be still supported until the adaptation for Android O changes drastically. It could be challenging because it involves adaptation from huge number of manufacturers.
If you are uploading your app as your first release, then you must ensure you are compatible with Android O.
For updates to existing app, the deadline is November.
onsole, Android Studio, and Firebase. Start survey
Meet Google Play's target API level requirement
Bad interpretation of the message ?
Actual statement in English from site is:
Google Play will require that new apps target at least Android 8.0
(API level 26) from August 1, 2018, and that app updates target
Android 8.0 from November 1, 2018.
You should first understand the difference between TARGET API and MINIMUM
API Levels.
As a reminder, target API level is different from minimum API level. As the name implies, minimum API level is used to declare the lowest version of Android an app supports. The target API level is technically defined as the version of the operating system an app was tested to work with; but in more practical terms, it's used to define a set of behaviors an app expects from the operating system.
Please follow this link to view the complete source of this information:
https://www.androidpolice.com/2017/12/19/play-store-require-new-updated-apps-target-recent-api-levels-distribute-native-apps-64-bit-support/
Just update your compileSdkVersion and targetSdkVersion to 26 (or better to 28).
And read about minimum api version and target api version. It`s important to understand.
https://developer.android.com/guide/topics/manifest/uses-sdk-element
What does this mean?
its means that you need to set target sdk Android 8.0 (26 API)
Does this mean that I will not be able to develop applications compatible with versions smaller than 8.0?
No it means that the end November your app must compatible with Android O (26 API)
This would result in a "death" of all devices with version other than 8.0
NO
how can bug fixings / new features be introduced within existing apps with versions other than 8.0?
it will support all features introduced within existing apps with versions other than 8.0
is Google thinking about releasing android oreo for all devices on the market?
Nobody knows the future
I uploaded a new beta testing version with Android target api level 23. Before it was 22. I did not know, that with API Level 23 there are many changes regarding permissions. I realized that after uploading the new beta testing version with api level 23. So i build a new Version which was using api level 22 again to have more time to adapt my app to api level 23.
But every time now when i do upload a version with api level 22, i get an error in developer console "app could not be saved" with no more information about the error and i can not upload it. When I compile a new version with target API Level 23 it can be uploaded again. I think the problem is the downgrade to api Level 22.
Is it true, that once you published an API Level 23 version in closed beta testing, you can not downgrade back to target API Level 22?
Thanks for your help!
Smilingm
message from Developer Console:
Android N final SDK available
You can now use the Developer Console to publish apps that target Android N devices (API level 24) to your production, alpha, and beta channels. Keep in mind that once you publish an APK targeting API level 23 or higher, you won't be able to submit an update targeting API level 22 or lower on any channel. 2016 Jun 15
Yes it is true.
You can not downgrade back to target API Level 22.