Ionic v3从PLIST删除特定键

时间:2019-01-08 04:13:37

标签: ios cordova ionic3 cordova-ios

我正在开发一个使用地理位置的Ionic应用程序,并基于config.xml和一个额外的edit-config元素,我在info.plist文件中获得了以下三个键:

  • NSLocationWhenInUseUsageDescription:将在使用应用程序时使用位置。
  • NSLocationAlwaysUsageDescription:即使屏幕关闭或应用处于后台,该应用也需要不断访问您的位置以跟踪您的位置。
  • NSLocationAlwaysAndWhenInUseUsageDescription:即使屏幕关闭或应用处于后台,该应用也需要不断访问您的位置以跟踪您的位置。

LocationWhenInUse键是我要添加的东西,但其他两个则来自其他地方。这是我相关的config.xml:

    ...
    <platform name="ios">
        <edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
            <string>Location will be used while app is in use.</string>
        </edit-config>
        ...
    </platform>
    ...
    <plugin name="cordova-plugin-geolocation" spec="^4.0.1">
        <variable name="GEOLOCATION_USAGE_DESCRIPTION" value="Geolocation will be used to determine your location" />
    </plugin>

我想做的是删除两个“始终”权限。我唯一想问的用户是“从不/在使用中”。

有什么办法可以使用config.xml删除两个“总是”元素?我不想每次我进行生产iOS版本时都记得要删除这两个键。

1 个答案:

答案 0 :(得分:1)

这些键是placeholders added by cordova-diagnostic-plugin

只有在您请求在运行时使用位置“始终”时,才会显示NSLocationAlwaysUsageDescriptionNSLocationAlwaysAndWhenInUseUsageDescription中包含的字符串。

更新

要从.plist中删除这些键,可以使用cordova-custom-config。首先安装它:

cordova plugin add cordova-custom-config

然后在<custom-config-file>下添加<platform name="ios">块以删除不需要的密钥:

<platform name="ios">
    <custom-config-file parent="NSLocationAlwaysUsageDescription" target="*-Info.plist" mode="delete"/>
    <custom-config-file parent="NSLocationAlwaysAndWhenInUseUsageDescription" target="*-Info.plist" mode="delete"/>