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

iOS托管式Expo React Native应用自定义位置权限消息不显示

解决iOS Expo React Native自定义位置权限提示不显示的问题

问题根源

你调用Location.requestForegroundPermissionsAsync()请求的是前台位置权限,但在app.json的infoPlist中配置的是NSLocationAlwaysAndWhenInUseUsageDescription——这个字段对应的是「始终允许(含后台)」权限的提示文本,和当前请求的权限类型不匹配,因此系统会显示默认提示。

正确配置

修改app.json的infoPlist,添加对应前台权限的描述字段NSLocationWhenInUseUsageDescription:

{
  "expo": {
    "ios": {
      "supportsTablet": true,
      "bundleIdentifier": "com.aaa.bbb",
      "infoPlist": {
        "NSLocationWhenInUseUsageDescription": "Allow my app to use your location to do this and that.....",
        // 若后续需要后台权限,再保留此字段
        "NSLocationAlwaysAndWhenInUseUsageDescription": "Allow my app to use your location even when backgrounded for XYZ purposes....."
      }
    }
  }
}

关键注意事项

  • 修改配置后,必须重新构建TestFlight安装包,旧包不会读取新的infoPlist配置
  • 确保字段名称完全正确(iOS的infoPlist字段大小写敏感,不可拼写错误)
  • 若后续需要申请后台位置权限,需调用Location.requestBackgroundPermissionsAsync(),同时保留NSLocationAlwaysAndWhenInUseUsageDescription配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:14:58