Google Play Services自动添加AD ID权限致应用无法上传Play商店
解决Google Play Services自动添加AD权限导致应用无法上传的问题
一、修复Gradle依赖排除的语法错误
你之前的依赖排除写法不符合Gradle语法规范,带配置块的依赖需要将坐标用括号包裹,正确写法如下:
implementation('com.google.firebase:firebase-core:21.1.1') { exclude module: "play-services-ads-identifier" exclude module: "play-services-measurement" exclude module: "play-services-measurement-sdk" }
原代码错误是因为未用括号包裹依赖坐标,导致Gradle无法识别后续的排除配置块。
二、直接在清单中强制移除AD权限
如果排除依赖后权限仍存在,可在应用的AndroidManifest.xml中添加以下代码,强制移除合并进来的AD权限:
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove" />
注意需要在清单根标签manifest中添加命名空间声明,否则tools:node属性会报错:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
三、针对Firebase的优化配置
由于你未使用Firebase Analytics,可通过以下方式彻底禁用相关功能,避免自动引入依赖:
- 在项目根目录的
gradle.properties中添加:
firebase.analytics.collection.enabled=false firebase.analytics.collection.deferred.app_install=false firebase.analytics.collection.deferred.app_update=false
- 若无需Firebase Core(Analytics),可直接移除
com.google.firebase:firebase-core依赖——Firebase Crashlytics和Messaging并不强制依赖该模块(从Firebase BoM 28.0.0版本开始,Core已拆分,无需单独引入)。
四、验证结果
修改完成后,通过Android Studio清单编辑器底部的Merged Manifest视图,确认AD权限已被彻底移除,之后即可正常上传应用至Play商店。
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

