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

React Native iOS应用Info.plist位置权限用途字符串的审核问题咨询

React Native iOS App Store 权限审核问题解决方案

疑问解答

1. React Native为何默认添加NSLocationWhenInUseUsageDescription却留空?必须补充有效字符串吗?

React Native核心框架内置了Geolocation定位相关API,初始化项目时会自动在Info.plist中添加该权限键,但由于无法预知开发者的具体使用场景,所以默认留空。

根据苹果App Store审核规则,所有权限用途字符串必须非空且清晰说明用途——哪怕你没直接使用定位功能,只要Info.plist中存在该键,就不能留空,必须补充有效的描述文本。

2. 未直接使用定位,但第三方库包含定位代码,是否需要添加NSLocationAlwaysAndWhenInUseUsageDescription?

苹果审核会检测最终打包的二进制文件中是否包含定位权限相关的API调用,不管代码来自你自己还是第三方库。react-native-permission为了支持定位权限申请,会引入相关系统API,所以审核时会触发权限检测。

这种情况分两种处理:

  • 如果你的App完全不需要定位功能:优先清理第三方库中定位相关的代码(比如通过配置禁用定位模块,或更换不包含定位权限的权限库),这样可以彻底移除权限键,避免后续问题。
  • 如果无法清理第三方库的定位代码:必须添加NSLocationAlwaysAndWhenInUseUsageDescription键及非空用途描述,如实说明情况即可(比如“本应用未使用始终定位服务,该声明为第三方依赖所需”)。

符合规范的具体操作步骤

步骤1:修复空的NSLocationWhenInUseUsageDescription

打开项目的Info.plist(Xcode中直接编辑或修改XML文件),找到该键,补充真实清晰的描述:

<key>NSLocationWhenInUseUsageDescription</key>
<string>本应用未使用定位服务,该声明为第三方依赖所需</string>

如果你的App确实用到定位,就替换为具体场景,比如“获取您的位置以推荐附近商家”。

步骤2:处理NSLocationAlwaysAndWhenInUseUsageDescription缺失

  • 若需要始终定位权限:添加该键并补充用途:
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>在后台持续获取位置以提供实时导航服务</string>
  • 若不需要始终定位权限:
    1. 尝试在react-native-permission中禁用定位模块:查看库的文档,通过配置项关闭定位权限支持;或在Podfile中排除定位相关的Pod依赖。
    2. 若无法禁用,就添加该键并如实描述:
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>本应用未使用始终定位服务,该声明为第三方依赖所需</string>

步骤3:彻底移除不必要的权限(推荐)

如果你的App完全不需要定位功能,建议直接修改react-native-permission的配置,移除定位相关的代码,或者更换为仅包含你需要的权限的库。这样可以从根源上避免权限相关的审核问题,也减少App的权限声明冗余。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:42:34