You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter应用因使用geolocator遭双平台拒审,求解决方案

Flutter应用App Store/Google Play拒审整改方案

Android端整改方案

针对Google Play的后台定位权限审核要求,分两种场景处理:

场景1:应用确实需要后台定位功能

  • 完善Play Console权限声明
    • 登录Play Console,进入目标应用的「政策合规」>「权限声明」页面
    • 选择「位置权限」,明确填写后台定位的具体业务场景(例如:"用于实时追踪外卖配送进度,用户在后台也能收到配送位置更新提醒"),禁止模糊描述
    • 提交声明后,重新打包应用,确保代码中后台定位的调用逻辑完全匹配声明的场景
  • 权限配置优化
    • 若尚未添加,在AndroidManifest.xml中补充后台定位权限:
      <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
      
    • 确保代码中仅在必要时机请求后台定位,避免无意义的权限调用

场景2:应用不需要后台定位功能

  • 移除所有与后台定位相关的权限配置(若未添加ACCESS_BACKGROUND_LOCATION则跳过)
  • 检查geolocator的调用逻辑:仅使用前台定位模式,例如调用requestWhenInUsePermission()而非requestAlwaysPermission()
  • 删除代码中所有后台定位相关的逻辑(如后台位置更新监听)
  • 重新打包提交

iOS端整改方案

针对App Store的权限描述模糊问题,核心是把权限说明写具体:

  • 修改Info.plist的定位权限描述
    • 替换NSLocationWhenInUseUsageDescription为带具体场景和用户收益的描述,例如:
      <key>NSLocationWhenInUseUsageDescription</key>
      <string>为您推荐周边的优质商家,快速获取附近的专属优惠活动</string>
      
    • 若确实需要后台定位,将NSLocationAlwaysUsageDescription(建议替换为iOS 11+兼容的NSLocationAlwaysAndWhenInUseUsageDescription)修改为:
      <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
      <string>后台实时更新您的运动轨迹,生成完整的跑步路线报表</string>
      
    • 注意:描述必须明确说明「为什么需要权限」和「用户能获得什么价值」,禁止使用空泛表述
  • 权限逻辑精简
    • 若不需要后台定位,直接删除NSLocationAlwaysUsageDescription相关配置
    • 代码中仅请求必要的权限:使用Geolocator.requestWhenInUsePermission()替代全时段权限请求

通用验证步骤

  • 测试权限触发时机:确保应用仅在用户触发相关功能时(如点击「附近商家」按钮)才弹出权限请求,而非启动即弹
  • 检查geolocator版本:升级到最新稳定版,避免插件自带的权限配置漏洞
  • 同步隐私政策:若应用收集位置数据,需在隐私政策中明确说明数据用途、存储周期、共享范围,两个应用商店都会核查隐私政策的一致性

内容的提问来源于stack exchange,提问作者sermed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 19:45:39