由于后台位置权限,应用程序在播放商店上被拒绝



我在play商店中放入新版本的应用程序时遇到问题,希望有人能帮我。这个应用程序的前几个版本基本上是一个不同的应用程序,新版本是从头开始构建的。当我上传应用程序包进行审查时,我最终得到了一个状态更新,即后台位置权限存在问题,并且权限声明表中缺少它(因为我删除了它,所以应该不再需要它(。它声明至少有一个功能使用此访问。在受影响的APK中,它显示了一年多前发布的捆绑包,这让我很困惑

";新的";应用程序正在对compileSdkVersion 30、minSdk 21和targetSdk 30使用ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION权限。这个版本不应该使用后台位置访问,所以我在AndroidManifest.xml中添加了以下行:

<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" tools:node="remove"/>

我还在文件顶部的manifest标记中声明了这些工具。

当我运行该应用程序并查看它在apps/myapp/permissions下的权限时,我看到了粗略和精细的位置访问,但没有后台访问。在play商店中浏览捆绑包时,后台访问也不在权限列表中,在AndroidStudio中分析捆绑包和清单时也找不到。

在浏览这些包时,我找不到可能插入此权限的包的指示。

我想知道是否有更好的方法来调试它,而不是上传到播放商店进行审查,以及我在这里可能缺少什么来获得批准。

Android 10(API 29级(对位置权限进行了一些更改。这一变化对针对旧版本Android的应用程序的影响如下:

如果您的应用程序运行在Android 10或更高版本上,但目标是Android 9(API 29级(或更低版本,则平台应用以下行为:

  • 如果您的应用程序为ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION声明了一个元素,则系统会在安装过程中自动为ACCESS_BACKGROUND_LOCATION添加一个元素
  • 如果您的应用程序请求ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION,系统会自动将ACCESS_BACKGROUND_LOCATION添加到请求中

因此,您的应用程序的任何版本在Google Play中仍然可用,该版本使用ACCESS_FINE_LOCATION和/或ACCESS_COARSE_LOCATION,并且具有targetSdkVersion<=28现在将在运行Android 10或更高版本的设备上自动拥有ACCESS_BACKGROUND_LOCATION。它是否真的读取后台中的位置数据是另一回事;这里重要的是它声明了权限。

这些规则适用于您的所有发布轨道-无论是生产轨道、alpha/beta轨道、内部测试轨道等。如果其中任何规则符合上述标准,您必须在该发布轨道上发布应用程序的更新版本。

如果您绝对确定您没有在代码中的任何地方使用权限。是时候检查您的依赖关系了,如果其中任何一个正在使用此权限。

最新更新