0

I recently get the warning to update the Android Target Version to 26 or more from the Google Play Console. However, I have already set the target SDK to 26.

I check the AndroidManifest file and the merged manifest for all the libraries I have included in the project.

There are few libraries which are under Manifest Sources and few are under the Other manifest files(Included in merge, but did not contribute any elements) - what does this mean?

Can i update the manifest to target API 26 for this project only and upload the to see if it gets accepted or not.

Google needs to verify the App for SMS and Call Log permission but when i upload the app to the play store i get the warning - •

Your app needs to be using runtime permissions for us to complete the review. Please update your app to target API level 26 or above and resubmit the declaration form.

enter image description here

Aman Verma
  • 3,155
  • 7
  • 30
  • 60

2 Answers2

1

There are few libraries which are under Manifest Sources and few are under the Other manifest files(Included in merge, but did not contribute any elements) - what does this mean?

When you use other libraries their manifest files will merge with yours to form one Manifest that will ultimately be used.

Can i update the manifest to target API 26 for this project only and upload the to see if it gets accepted or not.

It's better to set the minSdkVersion and targetSdkVersion in your build.gradle file not in the manifest because Gradle overrides the manifest values reference can be found here

Google needs to verify the App for SMS and Call Log permission but when i upload the app to the play store i get the warning

When you target API 23 or above you need to write Runtime permissions or you will get a crash when you try to access them.

Mohamed Khaled
  • 139
  • 1
  • 7
  • I have already set in gradle file. The above screen shot is for the Manifest of the jobdispatcher library i am using. Can i edit this ti 27 or 26 prviously it was 25 – Aman Verma Feb 01 '19 at 22:30
1

it's called WorkManager now; the Firebase Job-Dispatcher might not receive updates anymore.

implementation "android.arch.work:work-firebase:1.0.0-alpha11"
androidTestImplementation ("android.arch.work:work-testing:1.0.0-beta01") {
    exclude group: "android.arch.work"
}

only the API level of the application package matters - and the run-time permissions need to function - except these critical permissions for SMS and Call Log, which are subject to review. recently had one install from US territory, which might have been such review, even if I only use SIP telephony. there might have been people sending premium SMS from apps, which quickly deduct prepaid credits - or providing robocall services with phone numbers to bother. also smartTAN depends on SMS. the attack vector is realistic, therefore these checks are in place for a reason.

Martin Zeitler
  • 1
  • 19
  • 155
  • 216
  • So why they are giving me this warning. Do i have to update the targetSDK for other libraries too? – Aman Verma Feb 01 '19 at 23:17
  • And resubmit the application. – Aman Verma Feb 01 '19 at 23:18
  • 1
    @Sniper you don't have to update a single library, while they run on API level 28... for example, if you use any library targeting API 21, which does not properly request run-time permissions, this is rather an issue. – Martin Zeitler Feb 01 '19 at 23:19
  • So what to do? Since they are not able to review the application. – Aman Verma Feb 01 '19 at 23:20
  • CompileSDk is 28 and targetSDK is 26 and minsdk is 16. – Aman Verma Feb 01 '19 at 23:21
  • For that i have to manually check each library i am using. one more thing what the difference btwn manifest sources and other manifest files in the merged manifest file? – Aman Verma Feb 01 '19 at 23:23
  • @Sniper well, the ones are just source code, while the merged manifest is the result. these are the requirements, on a timeline, all on one page: https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html – Martin Zeitler Feb 01 '19 at 23:25
  • I am trying since last 10 days to get the approval for this. just one last question, Does the API Level Target of other Libraries and dependencies matter in my case? If yes, then y? – Aman Verma Feb 01 '19 at 23:31
  • @Sniper as stated, the culprit might be the run-time permissions, which a dated library might not be aware of - which still can be requested by the application package. best is to run tests a) on API level 21 (no run-time permissions) and current API level 26 or 28, which do require run-time permissions. this both has to work. manifests of libraries might at least hint for, if it might be required to request run-time permissions. writing tests is on the long run less effort than manual testing. – Martin Zeitler Feb 01 '19 at 23:42
  • Okay so I have to manually check and update each library in order to be sure that they too are in compliance. Because how come Google find out that I need to update to 26 when I have already set the SDK version to 26. Google must take the API level of libraries into consideration as well not only the application API level – Aman Verma Feb 01 '19 at 23:49