由于cordova-plugin-geolocation,IOS PhoneGap应用程序被App Store拒绝

时间:2017-12-09 08:28:40

标签: ios cordova phonegap-plugins cordova-plugins phonegap-build

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>

但是他们发出了相同的反馈意见。现在我该怎么做才能解决这个问题?

3 个答案:

答案 0 :(得分:2)

问题是您使用的旧版本插件仍然使用变量作为用法说明,并且变量会使用空值(默认值)覆盖edit-config标记值

您有两种选择:

  1. 将地理位置插件更新为3.0.0或更高版本并使用edit-config标记,就像现在一样。

  2. 设置Phonegap Build的使用说明。

  3. 要设置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构建没有正确复制插件配置,我不得不手工编写它们。

How Info.plist should look like

答案 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识别。