Flutter应用因REQUEST_INSTALL_PACKAGES权限遭Play商店拒审求助
Google Play 因 REQUEST_INSTALL_PACKAGES 权限拒审,已尝试多种方法仍未解决
我上传Flutter应用到Google Play时,一直因包含REQUEST_INSTALL_PACKAGES权限被拒,但我已经尝试了多种排查方法,均未找到该权限的踪迹,也无法解决拒审问题:
- 在
AndroidManifest.xml中添加代码:<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" tools:node="remove"/> - 移除
open_file包,执行flutter clean后重新构建 - 通过Android Studio分析APK,未发现
REQUEST_INSTALL_PACKAGES权限 - 在应用包资源管理器中检查,未找到该权限
- 查看
\build\app\outputs\logs\manifest-merger-release-report.txt,同样无该权限记录
可能的解决方向
- 排查间接依赖的权限引入
有些第三方包可能通过依赖链间接声明这个权限,不一定是你直接引用的包。执行flutter pub deps --tree查看完整依赖树,逐个检查依赖包的AndroidManifest文件,确认是否有包声明了该权限。 - 检查多构建变种配置
如果用了多渠道打包或自定义构建变种,可能某个变种的Manifest配置没同步处理。确保所有构建变种的AndroidManifest都添加了权限移除的代码,或者统一使用主Manifest的配置。 - 强化Manifest权限移除规则
尝试在权限声明里加上tools:replace="android:name",确保Manifest合并时彻底移除该权限:<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" tools:node="remove" tools:replace="android:name"/> - 更新Google Play Console的权限声明
有时候Google Play会缓存之前的权限记录,即便当前APK没有该权限,后台可能还保留旧的声明。去Console的「应用内容」-「权限和功能」页面,手动更新权限说明,明确告知已移除该权限。 - 彻底清理构建缓存后重新打包
除了flutter clean,直接删除项目根目录的build文件夹,然后重新执行构建、签名流程。生成APK后再次用Android Studio的APK Analyzer确认权限情况,避免缓存导致的APK内容不一致。 - 检查代码中的动态权限请求
即便Manifest里没声明,如果代码里存在请求REQUEST_INSTALL_PACKAGES权限的逻辑,Google Play的检测工具也会识别到。全局搜索项目代码中的REQUEST_INSTALL_PACKAGES字符串,确保没有残留相关请求逻辑。
内容的提问来源于stack exchange,提问作者Lee Wei Chin
相关产品推荐
相关产品推荐

