Google拒审App更新:移除REQUEST_INSTALL_PACKAGES权限后仍遭拒求助
彻底排查第三方依赖的权限引入
就算你自己的Manifest和IDE显示的合并Manifest里没这个权限,也可能是某个第三方依赖在特定构建变体(比如Release)中偷偷引入了。可以通过Gradle命令生成完整的合并Manifest文件:./gradlew app:mergeReleaseManifest然后去项目的
app/build/intermediates/merged_manifests/release/AndroidManifest.xml路径下打开文件,逐行检查是否存在REQUEST_INSTALL_PACKAGES权限。如果找到,定位到对应的依赖库,要么换兼容版本,要么在Manifest里通过tools:node="remove"结合tools:selector精准移除该依赖引入的权限。检查代码中是否存在权限相关硬编码或动态请求
Google的审核工具会扫描APK中的代码字符串,如果你代码里有硬编码android.permission.REQUEST_INSTALL_PACKAGES这个字符串,或者有尝试动态请求该权限的逻辑(哪怕Manifest里没声明),也可能触发拒审。全局搜索项目中的这个权限字符串,把无用的代码、注释都删掉。清理构建缓存,确保打包的是最新版本
本地构建缓存可能导致旧的Manifest配置被打包进APK。执行以下命令彻底清理后重新构建:./gradlew clean assembleRelease打包完成后,用Android Studio自带的
Build > Analyze APK工具打开生成的APK,查看里面的Manifest文件,确认确实没有该权限。检查多渠道/多构建变体的配置
如果你上传的是特定渠道包,要确认该渠道的Manifest配置是否也移除了权限。比如有些渠道可能有单独的Manifest文件或Gradle配置,不小心保留了权限声明。向Google提交申诉并提供证明材料
如果你确认APK中确实没有该权限,可以在拒审申诉里附上APK分析工具查看Manifest的截图、合并后的Manifest文件内容截图,明确告知Google你的应用已彻底移除该权限,请求重新审核。
内容的提问来源于stack exchange,提问作者michaelsmith

