Как добавить NSPhotoLibraryUsageDescription в файл plist через файл config.xml? - PullRequest
0 голосов
/ 16 октября 2018

Я работаю над новым приложением и пытаюсь отправить его в itunes через загрузчик приложений.Файл ipa создается онлайн-службой сборки phonegap, и приложение использует среди прочего плагин камеры cordova.

Когда я загружаю файл ipa с помощью загрузчика приложений, все кажется успешным, но через несколько минут я получаюэлектронное письмо со следующим текстом:

Отсутствует строка назначения в файле Info.plist. Код вашего приложения ссылается на один или несколько API-интерфейсов, которые получают доступ к конфиденциальным данным пользователя.Файл Info.plist приложения должен содержать ключ NSPhotoLibraryUsageDescription с целевой строкой, ориентированной на пользователя, которая четко и полностью объясняет, почему вашему приложению нужны данные.Начиная с весны 2019 года, все приложения, представленные в App Store и имеющие доступ к пользовательским данным, должны будут включать строку назначения. Если вы используете внешние библиотеки или SDK, они могут ссылаться на API, для которых требуется строка назначения.Хотя ваше приложение может не использовать эти API, строка назначения по-прежнему требуется.Вы можете связаться с разработчиком библиотеки или SDK и попросить, чтобы они выпустили версию своего кода, которая не содержит API.Узнать больше (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).

и аналогичный абзац, относящийся к NSCameraUsageDescription

Я пробовал многочисленные исправления, найденные в Интернете, включая добавление любого и всех следующих элементов в config.xml:

 <platform name="ios">
.....
<edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="merge">
    <string>need camera access to take pictures</string>
</edit-config>
<edit-config target="NSLocationWhenInUseUsageDescription" file="*-Info.plist" mode="merge">
<string>need location access to find things nearby</string>
</edit-config>

</platform>
<gap:config-file platform="ios" parent="NSCameraUsageDescription">
    <string>For taking pictures</string>
</gap:config-file>
<gap:config-file platform="ios" parent="NSPhotoLibraryUsageDescription">
    <string>For uploading images</string>
</gap:config-file>
    <plugin name="cordova-plugin-camera" spec="^4.0.3" >  
    <variable name="NSCameraUsageDescription" value="Take pictures of stuff" />
    <variable name="NSPhotoLibraryAddUsageDescription" value="App would like to access the library." />
</plugin>

Они взяты из официальной документации плагина, а также из нескольких других вопросов по stackoverflow, но каждая отправка возвращает одно и то же электронное письмо. Кажется, я не могу понять, какую правильную строку добавить вфайл config.xml.

1 Ответ

0 голосов
/ 19 октября 2018

Разобрался.Служба сборки phonegap по умолчанию использует cli-6.5.0, что означает, что вам нужно добавить следующее в config.xml внутри тегов виджета, но не внутри тегов платформы.

<config-file platform="ios" parent="NSCameraUsageDescription" mode="replace">
<string>App would like to access the camera.</string>
</config-file>

<config-file platform="ios" parent="NSPhotoLibraryUsageDescription" mode="replace">
  <string>App would like to access the camera.</string>
</config-file>

Взято из http://docs.phonegap.com/phonegap-build/configuring/config-file-element/

...