If my App has minSDKVersion = 16 and TargetSDKVersion = 28, then will Google somehow upgrade my App to work with devices which use sdk version greater than 28?
And if the same is true for all future versions of SDK then if I dont update my app meanwhile?
Please excuse me as my English is not good. Thanks.
Google never ever updates your apps for the latest SDK, you have to do it yourself and publish again. I know its a pain when google play console frequently changes requirements to support certain Target API Level but its the pain you have to endure. TargetSDKVersion is the last SDK / API which your app will support.
No, you will need to do an update by changing your targetSDK from your build.gradle file, then make the required changes in your code to work with that API level and you can upload an update.
The Playstore will not update it automatically, that's why it's called targetSDKVersion, it will just be available from SDK 16 until the target one, 28.
Related
Google recently announced, that "updates to apps and games on Google Play will be required to target Android 9 (API level 28) or higher". As far as I understand, this does not have any negative consequences (like, the apps are removed from store) to existing apps with a targetSdkVersion lower than 28. Is this true? So, what google wants to say is just that I'm no longer able to update existing apps with targetSdkVersion < 28?
Last year Google notified developers to upgrade your Apps which should be at least API-LEVEL 26.
Now same thing we have to do upgrade API-Level, existing applications will not stop or removed but new builds we can not publish on play store which are below> API Level 28.
Yes you are right, starting from November 1 Google won't allow you to submit to console if the target is less than 28
According to the new policies for submitting or update new apps to Play Store:
https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html
https://developer.android.com/distribute/best-practices/develop/target-sdk
We have some doubt regarding the libraries, Should we compile the library again with the last targetSDK?, or just validate that we don't have any problem with the last targetSDK for example if my library has the targetSdkVersion 23 and works fine in apps with targetSdkVersion 26, will the Play Store not reject the application?
The Play store just looks at the target SDK of your final compiled APK. So if you can get it to compile fine, and you can confirm by testing it works then that should be fine as far as the Play store is concerned. Once a jar/aar is compiled into an APK I don't believe the Play store can know the original targetSdk.
just validate that we don't have any problem with the last targetSdkVersion for example if my library have the targetSdkVersion 23
Most of the Android versions provide backward compatibility but by providing a higher targetSdkVersion even with a lower compileSdkVersion, the app will have better flexibility and accessibility of the latest Android API. If you follow some of the Android Release documentation, you will notice some new features offered would be remove from the latest API update. If your app have set the latest targetSdkVersion, the Android Studio will tell you which API has been deprecated, for example, some changes to service, if your app used the implicit intent for BindService, it will throw you an exception. Therefore, it is always recommended to implement the latest targetSdkVersion.
At the moment, if I'm not mistaken, the Play Store will still accept the app with lower targetSdkVersion. But it is recommended that you recompile to the latest targetSdkVersion as Play Store would request that in some time.
I hope it answer your doubt, cheers!
I tried to submit my updated application to playstore. When I tried upload the apk on production, there was notice saying
Play Store 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.
Currently, my application was set minSDKVersion 19 and targetSDKVersion as 23.
Does that mean I have to update my application to targetSDKVersion 26?
I have tried to change this and upload it. I seems to have error saying about the downgrade (Sorry I should have make a note of the message).
Does that mean I have to update my application to targetSDKVersion 26?
Yes. But for now its just a warning, it will enforced from beginning of August for new apps. Do take note that deadline for app update is November.
have tried to change this and upload it. I seems to have error saying
about the downgrade
Since you don't have complete error message, one probable cause of this issue is, you are trying to upload an app which has VersionCode less than the app available on play store. Re-check your version code and increase it if needed.
August 2018: New apps required to target API level 26 (Android 8.0) or
higher.
November 2018: Updates to existing apps required to target API level 26 or higher.
2019 onwards: Each year the targetSdkVersion
requirement will advance. Within one year following each Android
dessert release, new apps and app updates will need to target the
corresponding API level or higher.
source: https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html
As I was developing, I published to SDK 21, Lollipop, and I'm not able to use it on my KitKat device. The applications are really simple and I only used the SDK for the animations and for material design, however two things come up when I try and make changes to the play store.
I'm not sure what to set for my app. There is target SDK, minimum sdk, and such. I set all of these to 21 to 22. Now, if I try and publish an app that uses SDK minimum 11, Play gets mad and says that it cant roll back on devices. I don't care to update the users phones. Its a simple application that doesnt require that, but it won't let me update and replace the primary apk.
What should I do? What should I change? Apps are posted here under Thered Software on Google Play.
You can publish multiple apk's for different api-levels: http://developer.android.com/training/multiple-apks/api.html
First you should make sure you understand the difference between the compile SDK, minimum SDK, and target SDK versions. These are explained well in What is the difference between min SDK version/target SDK version vs. compile SDK version?.
Now, if I try and publish an app that uses SDK minimum 11, Play gets mad and says that it cant roll back on devices.
It would help if you posted the specific error message that the Play Store shows you, but it sounds like you are trying to upload an APK with a lower version code than an existing version of your app.
For example, let's assume you previously uploaded an APK that had a min SDK of 21 and you labeled that APK as version 56 of your application. Any version you upload now needs to have a version code of 57 or higher. This is because Android uses this version code to determine which version of an application is "newer."
This is specified in your build.gradle, as below:
android {
defaultConfig {
versionCode 56
}
}
Change your minsdk requirement in the manifest.
Do a new release (don't forget to increment the version code).
That is all.
I'm getting an error - INSTALL_FAILED_PERMISSION_LEVEL_DOWNGRADE while installing app from adb after targeting sdk 22, coming down from 23.
I have to do this, temporarily because of some other issues but it would not be the best experience for the users updating the app on Google play if they just couldn't. The only solution I know as of now is to uninstall the current version (targeting SDK 23) and then install the update (targeting SDK 22).
Even though there are only a handful of people on Marshmallow right now, it would be best if they don't face this issue.
Does anyone know anything about this?
Update: AFAIK nothing can be done in the app or on the console to avoid users uninstalling and installing the app. Luckily, I did it when the users on Marshmallow were few.
Perhaps this answer does not directly address the question, but may it helps others to achieve a faster solution.
I have created some versions with the following configuration (inside build.gradle) and made them available to alpha- and beta-tester via Google Play Console:
minSdkVersion 23
targetSdkVersion 23
When I noticed that users with a deeper system-version could not install the app, I changed the configuration as follows:
minSdkVersion 19
targetSdkVersion 19
However, this resulted in the downgrade error message in Google Play Console. So I adapted the configuration that the new version for both
user with a lower system version as well as for users who have installed the current app (with a higher system version).
minSdkVersion 19
targetSdkVersion 23