Ionic v3 Удалить определенные ключи из PLIST - PullRequest
0 голосов
/ 08 января 2019

Я работаю над приложением 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 голосов
/ 08 января 2019

Эти ключи являются заполнителями, добавленными плагином cordova-Diagnostic .

Строки, содержащиеся в NSLocationAlwaysUsageDescription и NSLocationAlwaysAndWhenInUseUsageDescription, будут отображаться только в том случае, если вы запросите использование местоположения «Всегда» во время выполнения.

Обновление

Чтобы удалить эти ключи из .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"/>
...