我无法将新版本的应用程序放入 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 商店进行审核,以及我在此处可能遗漏了什么以供批准。
答案 0 :(得分:2)
Android 10(API 级别 29)引入了 some changes 位置权限。对于面向旧版 Android 的应用,该更改的影响如下:
<块引用>如果您的应用在 Android 10 或更高版本上运行,但面向 Android 9(API 级别 29)或更低版本,则该平台会应用以下行为:
因此,在 Google Play 中仍可使用的任何版本的应用程序使用 ACCESS_FINE_LOCATION
和/或 ACCESS_COARSE_LOCATION
,并且具有 targetSdkVersion
<= 28 现在将自动具有 {{1}在运行 Android 10 或更高版本的设备上。它是否真正读取背景中的位置数据是另一回事;这里重要的是它声明了权限。
这些规则适用于您的所有发布轨道 - 无论是生产轨道、Alpha/Beta 轨道、内部测试轨道等。如果其中任何一条符合上述标准,您必须发布更新版本您的应用在该发布轨道上的排名。
答案 1 :(得分:1)
如果您绝对确定您没有在代码中的任何地方使用该权限。是时候检查您的依赖项,是否有任何一个正在使用此权限。