Ionic v3 从 PLIST 中删除特定键

Ionic v3 Remove Specific Keys from PLIST

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

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>

我想做的是删除两个 "Always" 权限。我唯一想问用户的是 Never/When In Use.

有什么方法可以使用 config.xml 删除两个 "always" 元素?我不想每次进行生产 iOS 构建时都必须记住删除这两个密钥。

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

NSLocationAlwaysUsageDescriptionNSLocationAlwaysAndWhenInUseUsageDescription 中包含的字符串只有在您请求在运行时使用位置 "Always" 时才会显示。

更新

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

cordova plugin add cordova-custom-config

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

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