Ionic2应用修改cordova-plugin-geolocation定位权限弹窗提示语
解决iOS位置权限弹窗提示修改及苹果审核拒绝问题
我来帮你搞定这个问题——苹果因为Guideline 5.1.1隐私条款拒绝你的应用,核心原因就是默认的位置权限提示不够明确,你需要修改弹窗里的文本,清晰告知用户你为什么需要获取位置权限。下面是具体的操作步骤:
核心原理
iOS要求所有访问隐私权限的应用,必须在Info.plist文件中添加对应的权限描述键,明确说明权限用途。对于位置权限,常用的有两个关键键(根据你的应用场景选择):
NSLocationWhenInUseUsageDescription:应用在前台运行时需要位置权限的描述NSLocationAlwaysAndWhenInUseUsageDescription:应用在前台和后台都需要位置权限的描述(iOS 11+)
具体修改方法(推荐通过config.xml配置,避免手动修改Info.plist被覆盖)
- 打开你的Ionic项目根目录下的
config.xml文件 - 找到
<platform name="ios">标签,在其内部添加以下配置(根据你的权限需求选择):
情况1:仅前台需要位置权限
<edit-config target="NSLocationWhenInUseUsageDescription" file="*-Info.plist" mode="merge"> <string>这里写清楚你的具体用途,比如:我们需要获取你的位置为你推荐附近的优质商家</string> </edit-config>
情况2:前后台都需要位置权限
除了上面的配置,还要添加后台权限的描述:
<edit-config target="NSLocationAlwaysAndWhenInUseUsageDescription" file="*-Info.plist" mode="merge"> <string>这里写后台用途,比如:我们需要在后台获取你的位置,为你提供实时物流追踪服务</string> </edit-config>
重点提醒:描述一定要具体,不能用模糊的语句(比如“需要访问你的位置”),必须结合应用的实际功能说明,否则苹果审核还是会拒绝。
- 重新编译iOS项目:
运行命令:
ionic cordova build ios
- 验证修改结果:
打开Xcode,加载编译后的iOS项目,找到Info.plist文件,检查对应的权限键是否已经显示你设置的描述文本。
旧版Cordova兼容方案
如果你的Cordova版本比较旧(低于8.0),edit-config可能不生效,这时可以改用config-file标签:
<config-file parent="NSLocationWhenInUseUsageDescription" platform="ios" target="*-Info.plist"> <string>你的具体用途描述</string> </config-file>
按照这个方法修改后,重新提交审核,应该就能解决5.1.1的拒绝问题了。
内容的提问来源于stack exchange,提问作者SMt
相关产品推荐
相关产品推荐

