Apple App Store拒绝了我的应用程序&发送此消息我们注意到您的应用请求用户同意访问该位置,但未明确在权限模式提醒中使用此功能。
此应用程序是使用phonegap& amp;我们使用名为 cordova-plugin-geolocation 的插件访问地理位置。他们还提到苹果可以创造问题& suggest添加以下代码
<edit-config target="NSLocationWhenInUseUsageDescription" file="*Info.plist" mode="merge">
<string>need location access to find things nearby</string>
</edit-config>
我已经添加了这样的&amp;再次重新提交。
<plugin name="cordova-plugin-geolocation" spec="2.4.2" />
<edit-config target="NSLocationWhenInUseUsageDescription" file="*-Info.plist" mode="merge">
<string>need location access to find things nearby</string>
</edit-config>
但是他们发出了相同的反馈意见。现在我该怎么做才能解决这个问题?
答案 0 :(得分:2)
问题是您使用的旧版本插件仍然使用变量作为用法说明,并且变量会使用空值(默认值)覆盖edit-config
标记值
您有两种选择:
将地理位置插件更新为3.0.0或更高版本并使用edit-config
标记,就像现在一样。
设置Phonegap Build的使用说明。
要设置Phonegap Build的使用说明,您必须这样做:
<plugin name="cordova-plugin-geolocation" spec="2.4.2">
<param name="GEOLOCATION_USAGE_DESCRIPTION" value="I want to find stores nearby" />
</plugin>
如果你有<preference name='phonegap-version' value='cli-7.0.1' />
或更新版本(或者你没有设置任何phonegap版本,因为它将使用最新版本作为默认设置),这应该有效。
答案 1 :(得分:1)
如果Info.plist中确实存在NSLocationWhenInUseUsageDescription
密钥,请检入cordova生成的xcode项目。有时它发生了cordova构建没有正确复制插件配置,我不得不手工编写它们。
答案 2 :(得分:1)
使用PhoneGap Build,这对我有用:
<gap:config-file overwrite="true" parent="NSLocationWhenInUseUsageDescription" platform="ios">
<string>Your usage description</string>
</gap:config-file>
更好的答案:编辑(20.04.2018)
更好的解决方案是在Build中使用更新的PhoneGap版本:
<preference name="android-minSdkVersion" value="15" />
<preference name="phonegap-version" value="cli-7.1.0" />
现在,<edit-config/>
标记将被Build识别。