您的清单文件不包含 com.google.android.gms.permission.AD_ID 权限

问题描述 投票:0回答:6

尝试将我的应用程序提交到 Play 商店时遇到以下错误:

您在 Play 管理中心上的声明表明您的应用使用广告 ID。您的清单文件不包含 com.google.android.gms.permission.AD_ID 权限。

我已经在我的

AD_ID
文件中声明了
AndroidManifest.xml
权限,如下:

 <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

我的应用程序的

targetSdk
版本是
33
,我包含的 AdMob 广告库版本是
21.3.0
,如下:

  implementation 'com.google.android.gms:play-services-ads:21.3.0'

我已按照 AdMob 入门 指南中的每一步操作,但不起作用。

google-play-services android-manifest android-permissions
6个回答
13
投票

我遇到了这个问题,我解决了。问题是您的依赖项之一(可能是 Firebase)在构建过程中强制将此权限插入清单中。 IE。手动制作文件后。您可以在清单中添加指令以在流程结束时删除权限,然后将其上传到商店时就不会出现问题。

您需要将其添加到您的

manifest
但在
application

之外
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>

但是,您还需要添加

tools
XML 命名空间,否则构建将失败。这位于根
manifest
节点

内部

xmlns:tools="http://schemas.android.com/tools"

您还可以在上传到 Google Play 商店之前检查清单。只需将 apk/appbundle 重命名为 .zip ,解压文件并检查清单文件的内容即可。


7
投票

Firebase Analytics 正在使用

com.google.android.gms.permission.AD_ID
权限来跟踪用户。(https://support.google.com/analytics/answer/11593727?hl=en)

您可以删除添加到清单中的权限

<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove" />

但这可能会使您的使用统计数据无效


3
投票

对于上传的针对 Android 13 的应用程序,您必须:

  1. (如果您不使用广告,请跳至2) 如果您的应用使用广告,请在清单中添加权限
    <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
  2. 在 Play 管理中心中,向下滚动并单击左侧菜单底部的应用内容。在打开的页面中,您必须填写广告ID部分,这几乎是为了声明您是否使用广告ID。

我们面临的问题是我们的应用程序中没有使用任何广告,但 Firebase 核心库需要广告库。因此,在 gradle 中,我们从构建中删除该库,如下所示:

gmsImplementation ('com.google.firebase:firebase-core') {
    exclude group: 'com.google.android.gms', module: 'play-services-ads-identifier'
}

2
投票

我也遇到这个问题了。还没有修复。

编辑:

似乎其他人也遇到了这个问题。

在阅读此 reddit 帖子时,一位用户提到问题出在 Play Console 团队这边,每个人都面临着这个问题。

他们还将他们的应用程序发布到生产环境,一切都很好,因此可以忽略错误警告。


0
投票

Firebase 文档建议禁用 AD_ID 权限,将以下内容添加到清单中:

<meta-data android:name="google_analytics_adid_collection_enabled" android:value="false" />

较旧的线程建议排除

播放服务广告标识符

来自以下所有依赖项:

// Firebase
implementation platform('com.google.firebase:firebase-bom:26.6.0')
implementation ('com.google.firebase:firebase-core') {
    exclude group: 'com.google.android.gms', module : 'play-services-ads-identifier'
}
implementation ('com.google.firebase:firebase-messaging') {
    exclude group: 'com.google.android.gms', module : 'play-services-ads-identifier'
}
implementation ('com.google.firebase:firebase-crashlytics') {
    exclude group: 'com.google.android.gms', module : 'play-services-ads-identifier'
}
implementation ('com.google.firebase:firebase-analytics') {
    exclude group: 'com.google.android.gms', module : 'play-services-ads-identifier'
}

前面的答案中提到的另一个解决方案是从清单中删除权限节点:

<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>

我还不知道每个解决方案的复制品,但有同样的问题,我要测试它们。

更新

这篇文章的第四个答案如果您想收集分析数据并且不更改代码,这可能是最好的方法 您可以选择“是”来判断您的应用是否有 AD_ID,然后选择“分析”作为原因。我


0
投票

所有的答案都是关于所问问题的吗?问题指出您声明了 AD_ID,但它不在您的清单文件中。不是相反...

© www.soinside.com 2019 - 2024. All rights reserved.