Android Gradle Plugin 4.1.0 自动授予位置权限

avi*_*ney 9 android gradle android-permissions

在清单中声明位置权限的构建应用程序在安装时使用最新的 AGP 4.1.0 获得默认授予的权限!!!

重现步骤:

  • 在 Android Studio https://github.com/avianey/Android30LocationRational 中结帐和导入
  • 连接在 sdk 29 或 30 下运行的设备或模拟器
  • 从 gradle 任务面板运行 uninstallAll 任务以确保从设备上卸载应用程序
  • 从 gradle 任务面板运行 installRelease 任务
  • 在设备上打开应用程序
  • 默认情况下授予ACCESS_FINE_LOCATIONACCESS_BACKGROUND_LOCATION

预期行为:

  • 安装时未授予权限

笔记:

  • 恢复到类路径 "com.android.tools.build:gradle:4.0.2" 修复问题
  • 使用 compileSdkVersion/targetSdkVersion 29 或 30 没有任何改变
  • 当安装应用程序使用来自 android studio 的默认安装配置时,问题不存在(默认情况下不授予权限)请参阅屏幕截图(红色是 bugguy,绿色不是,并按预期运行)

在此处输入图片说明

结果,在应用程序商店提交审核的捆绑应用程序存在问题,并且没有通过位置权限的合规性测试,合理的是在请求权限之前应该显示一个对话框...在 AGP 更改日志页面上找不到任何线索:https://developer.android.com/studio/releases/gradle-plugin

有什么想法可以避免恢复到旧的构建工具吗?

Coo*_*SRS 0

当您assembleRelease手动安装 APK 时,行为是正确的:未授予权限。尝试启动 ./gradlewinstallReleaseinstallDebug从您的终端启动。