由于后台位置权限,应用在 Play 商店中被拒绝

时间:2021-05-11 09:12:01

标签: android flutter google-play

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

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

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

我还在文件顶部的 manifest 标签内声明了工具。

当我运行应用程序并查看它在 apps/myapp/permissions 下的权限时,我看到粗略和精细的位置访问,但没有后台访问。在 Play 商店中探索 bundle 时,后台访问也不在权限列表中,在 AndroidStudio 中分析 bundle 和 manifest 时也找不到。

在查看包时,我找不到可能插入此权限的包的指示。

我想知道是否有更好的方法来调试它,而不是上传到 Play 商店进行审核,以及我在此处可能遗漏了什么以供批准。

2 个答案:

答案 0 :(得分:2)

Android 10(API 级别 29)引入了 some changes 位置权限。对于面向旧版 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 现在将自动具有 {{1}在运行 Android 10 或更高版本的设备上。它是否真正读取背景中的位置数据是另一回事;这里重要的是它声明了权限。

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

答案 1 :(得分:1)

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