Flutter应用因误判后台位置权限遭Google Play拒审求助
彻底移除Flutter应用中的后台位置权限相关内容
精准控制geolocator的权限请求
确保代码里只请求前台位置权限,绝对不要触碰后台权限相关的配置:// 仅请求应用在前台使用时的位置权限 final permission = await Geolocator.requestPermission( const LocationPermission.whileInUse, ); // 严禁使用LocationPermission.always(该权限默认包含后台访问权限)同时检查pubspec.yaml里的geolocator配置,不要开启任何后台相关的可选参数。
强制清理AndroidManifest.xml中的后台权限
就算你手动删了权限,依赖库也可能通过Manifest合并自动添加上后台权限,必须强制移除:<manifest ... xmlns:tools="http://schemas.android.com/tools"> <!-- 强制移除后台位置权限,阻断依赖库的自动引入 --> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" tools:node="remove" /> <!-- 只保留前台所需的位置权限(二选一即可) --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> --> </manifest>排查其他依赖库的权限引入
有些第三方插件(比如地图、轨迹类工具)会偷偷添加上后台位置权限,执行命令查看完整依赖树:flutter pub deps找到涉及位置权限的依赖,要么换成无后台权限的替代包,要么同样在Manifest里用
tools:node="remove"强制移除该依赖带来的后台权限。验证最终构建包的权限
打release版APK/AAB后,用aapt工具检查最终权限列表,确认后台权限已经彻底清除:# 检查APK文件 aapt dump badging path/to/your/app-release.apk | grep permission # 检查AAB文件需要先解压出base.apk,再执行上述命令如果输出里还有
ACCESS_BACKGROUND_LOCATION,继续排查依赖或Manifest配置。更新Google Play Console的权限声明
在Google Play Console的应用信息>权限和声明里,只勾选「前台位置权限」相关选项,绝对不要碰后台位置权限的声明项,同时在权限说明里明确写清楚:应用仅在前台运行时获取位置信息,无任何后台位置访问行为。
内容的提问来源于stack exchange,提问作者Gokul Hans
相关产品推荐
相关产品推荐

