Android审核判定我的Flutter应用获取用户位置?求排查解决
解决Flutter应用因位置数据卡审的方案
可疑依赖定位
- maps_launcher: 这个库用于启动设备自带的地图应用,虽然你没有主动收集位置数据,但它可能在Android的
AndroidManifest.xml或iOS的Info.plist中自动添加了位置权限声明(比如ACCESS_FINE_LOCATION),导致平台检测到位置相关权限,进而要求你补充位置数据的安全声明。
处理方案
直接移除maps_launcher
如果你的应用不需要启动地图的功能,直接从pubspec.yaml中删除该依赖,执行flutter pub get后,再检查并清理自动生成的权限配置:- Android端:打开
android/app/src/main/AndroidManifest.xml,删除所有包含ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION的权限行。 - iOS端:打开
ios/Runner/Info.plist,删除NSLocationWhenInUseUsageDescription、NSLocationAlwaysUsageDescription这类位置相关的键值对。
- Android端:打开
用url_launcher替代(需保留地图功能时)
要是必须保留启动地图的功能,直接用已有的url_launcher调用地图的URL Scheme即可,不会引入额外权限声明:- 启动谷歌地图示例:
await launchUrl( Uri.parse('https://www.google.com/maps/search/?api=1&query=37.7749,-122.4194'), ); - 启动苹果地图示例:
await launchUrl( Uri.parse('http://maps.apple.com/?q=37.7749,-122.4194'), );
- 启动谷歌地图示例:
额外验证
- 再次确认
sentry_flutter的配置中没有开启位置追踪(你已排查过,基本无问题)。 - 检查项目中是否有手动添加的位置权限声明,若有且非必需则删除。
内容的提问来源于stack exchange,提问作者Sarah K
相关产品推荐
相关产品推荐

