Android签名APK(.aab)遭Play Store拒绝:REQUEST_INSTALL_PACKAGES权限合规问题
解决Google Play因REQUEST_INSTALL_PACKAGES权限拒绝AAB的问题
1. 检查合并后的Manifest文件
你自己的AndroidManifest.xml没声明该权限,但第三方依赖库可能会隐式添加这个权限,通过Manifest合并机制进入最终构建包。可以通过两种方式查看:
- 在Android Studio中,打开
app/src/main/AndroidManifest.xml,点击底部的Merged Manifest标签,搜索REQUEST_INSTALL_PACKAGES,找到是哪个依赖引入的。 - 执行Gradle命令生成合并报告:
报告路径在./gradlew app:processReleaseManifestapp/build/outputs/logs/manifest-merger-release-report.txt,打开后搜索目标权限定位来源。
2. 强制移除该权限
在你自己的AndroidManifest.xml中添加以下代码,强制移除合并进来的REQUEST_INSTALL_PACKAGES权限:
首先在Manifest根元素添加tools命名空间:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
然后添加权限移除声明:
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" tools:node="remove" />
3. 排查自动更新类依赖
如果你的项目中使用了自动更新SDK(比如第三方更新库),这类库通常会自动声明该权限用于安装APK包。可以:
- 查看更新库的配置文档,是否有选项禁用该权限(比如引导用户到Google Play进行更新,无需本地安装权限)。
- 若无法配置,考虑替换为仅依赖Google Play更新的方案,完全去掉本地安装逻辑。
4. 清理缓存并重新构建
清理项目缓存避免旧配置残留:
- 在Android Studio中点击
File > Invalidate Caches...,选择Invalidate and Restart。 - 重新执行构建命令生成AAB:
./gradlew app:bundleRelease
5. 验证最终AAB的权限
构建完成后,用aapt工具检查AAB中的权限列表,确认REQUEST_INSTALL_PACKAGES已被移除:
aapt dump permissions app/build/outputs/bundle/release/app-release.aab
内容的提问来源于stack exchange,提问作者Muhammad Haris
相关产品推荐
相关产品推荐

