2017-01-07 6 views
7

Когда я пытаюсь и загрузить загрузить мой ITunes приложение установщику ITunes Я освобождаю эту ошибку:PhoneGap отсутствует plist.key

Missing Info.plist key - This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.

Missing Info.plist key - This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.

Что я могу добавить в мой файл конфигурации ниже, чтобы эту работу:

<preference name="permissions" value="none" /> 
    <preference name="orientation" value="default" /> 
    <preference name="target-device" value="universal" /> 
    <preference name="fullscreen" value="false" /> 
    <preference name="webviewbounce" value="false" /> 
    <preference name="disallowOverscroll" value="true" /> 
    <preference name="prerendered-icon" value="true" /> 
    <preference name="stay-in-webview" value="false" /> 
    <preference name="ios-statusbarstyle" value="black-opaque" /> 
    <preference name="detect-data-types" value="true" /> 
    <preference name="exit-on-suspend" value="false" /> 
    <preference name="show-splash-screen-spinner" value="true" /> 
    <preference name="auto-hide-splash-screen" value="true" /> 
    <preference name="disable-cursor" value="false" /> 
    <preference name="android-minSdkVersion" value="10" /> 
    <preference name="android-targetSdkVersion" value="19" /> 
    <preference name="android-installLocation" value="auto" /> 
    <gap:plugin name="org.apache.cordova.battery-status" source="npm" /> 
    <gap:plugin name="org.apache.cordova.camera" source="npm"/>  
    <gap:plugin name="org.apache.cordova.media-capture" source="npm"/> 
    <gap:plugin name="org.apache.cordova.console" source="npm" /> 
    <gap:plugin name="org.apache.cordova.contacts" source="npm"/> 

    <gap:plugin name="org.apache.cordova.device-motion" source="npm"/> 
    <gap:plugin name="org.apache.cordova.device-orientation" source="npm"/> 
    <gap:plugin name="org.apache.cordova.dialogs" source="npm"/> 
    <gap:plugin name="org.apache.cordova.file" source="npm"/> 
    <gap:plugin name="org.apache.cordova.file-transfer" source="npm"/> 

    <gap:plugin name="org.apache.cordova.inappbrowser" source="npm"/> 
    <gap:plugin name="org.apache.cordova.media" source="npm"/> 
    <gap:plugin name="org.apache.cordova.network-information" source="npm"/> 
    <gap:plugin name="org.apache.cordova.splashscreen" source="npm"/> 
    <gap:plugin name="org.apache.cordova.vibration" source="npm"/> 
    <icon src="icon.png" /> 

    <gap:splash src="splash.png" gap:platform="android" gap:qualifier="port-ldpi" /> 
    <gap:splash src="splash.png" gap:platform="android" gap:qualifier="port-mdpi" /> 
    <gap:splash src="splash.png" gap:platform="android" gap:qualifier="port-hdpi" /> 
    <gap:splash src="splash.png" gap:platform="android" gap:qualifier="port-xhdpi" /> 
    <gap:splash src="splash.png" gap:platform="blackberry" /> 
    <gap:splash src="splash.png" gap:platform="ios" width="320" height="480" /> 
    <gap:splash src="splash.png" gap:platform="ios" width="640" height="960" /> 
    <gap:splash src="splash.png" gap:platform="ios" width="640" height="1136" /> 
    <gap:splash src="splash.png" gap:platform="ios" width="768" height="1024" /> 
    <gap:splash src="splash.png" gap:platform="ios" width="1024" height="768" /> 
    <gap:splash src="splash.png" gap:platform="winphone" /> 
    <access origin="*" /> 

    <gap:plugin name=" phonegap-plugin-barcodescanner" source="npm" /> 
    <gap:plugin name="uk.co.workingedge.phonegap.plugin.launchnavigator" source="npm" /> 
    <gap:plugin name="cordova-plugin-directions" source="npm" /> 


    <!-- iPhone/iPod Touch - lower 4s --> 
    <icon src="icon-57.png" gap:platform="ios" width="57" height="57" /> 
    <icon src="icon.png" gap:platform="ios" width="114" height="114" /> 
    <icon src="icon-72.png" gap:platform="ios" width="72" height="72" /> 
    <icon src="152.png" gap:platform="ios" width="152" height="152" /> 
    <icon src="icon-120.png" gap:platform="ios" width="120" height="120" /> 
    <icon src="76.png" gap:platform="ios" width="76" height="76" /> 
    <icon src="icon-40.png" gap:platform="ios" width="40" height="40" /> 

    <!-- iPhone/iPod Touch - 5-5s --> 
    <icon src="icon.png" gap:platform="ios" width="60" height="60" /> 
    <icon src="icon.png" gap:platform="ios" width="120" height="120" /> 
    <!-- iPhone6-6+ --> 
    <icon src="icon.png" gap:platform="ios" width="180" height="180" /> 

    <!-- Settings Icon --> 
    <icon src="icon-29.png" gap:platform="ios" width="29" height="29" /> 
    <icon src="icon.png" gap:platform="ios" width="58" height="58" /> 

    <!-- Spotlight Icon --> 
    <icon src="icon.png" gap:platform="ios" width="40" height="40" /> 
    <icon src="icon.png" gap:platform="ios" width="80" height="80" /> 

    <plugin name="cordova-plugin-whitelist" version="1" source="npm"/> 

    <gap:plugin name="cordova-plugin-geolocation" source="npm"/> 

    <feature name="http://api.phonegap.com/1.0/battery" /> 
    <feature name="http://api.phonegap.com/1.0/camera" /> 
    <feature name="http://api.phonegap.com/1.0/network" /> 
    <feature name="http://api.phonegap.com/1.0/notification" /> 

    <gap:plugin name="cordova-plugin-x-socialsharing" source="npm" /> 
+0

Я пробовал это исправить, но он не работал: https://medium.com/collaborne-engineering/cordova-ios-10-nscamerausagedescription-missing-fbcbe5e41565#.duxoaay7a – Mike

+0

вам может потребоваться следовать http: // stackoverflow ,com/questions/38498275/ios-10-changes-in-ask-permissions-of-camera-microphone-and-photo-library-c – Naitik

ответ

14

Другой редактирование: Большинство плагинов удалены переменные для описания использования, так что теперь путь установки их использует edit-config тег в config.xml, как это.

Мы используем камеры для чего-то ...

Но не все плагины были обновлены еще, так что лучше, прежде чем прочитать README.md плагина. В основных плагинах он находится в разделе iOS Quirks.

Он также нуждается в консоли 7.0.1 или новее, установите его в config.xml, как это:

<preference name="phonegap-version" value="cli-8.0.0" /> 

EDIT:

Мой старый ответ больше не работает, если у вас есть <preference name='phonegap-version' value='cli-7.0.1' /> (или если у вас нет каких-либо phonegap-version, как он будет использовать его по умолчанию)

Чтобы установить описания использования использовать Params на плагин

<plugin name="cordova-plugin-camera"> 
    <param name="CAMERA_USAGE_DESCRIPTION" value="We are using the Camera for something..." /> 
    <param name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="We are using the Photo Library for something..." /> 
</plugin> 

Учтите, что если у вас есть какие-то плагины с тем же описаниями использования и не заполнять их с Param тегами они могут быть заменены по умолчанию пустой строки

Вы можете заставить использовать старый строитель с этим тегом , но это не рекомендуется, новый строитель лучше <preference name='pgb-builder-version' value='1' />

OLD ОТВЕТ:

Вы можете написать в информации.PLIST, как это:

<gap:config-file platform="ios" parent="NSCameraUsageDescription" overwrite="true"> 
    <string>We are using the Camera for something...</string> 
</gap:config-file> 

overwrite="true" важно, потому что последняя версия плагина камеры уже писать пустые значения.

Я испытал это на примере приложения, и это работает https://github.com/jcesarmobile/phonegap-template-hello-world/blob/454e852955e66470890cba636450abd422f50598/config.xml#L153-L155

+0

Удивительный, смог разобраться с вашим предложением. Просто пришлось вывести эту строку: сверху – Mike

+0

Я отредактировал ее, и она ее вытащила. Также в моем коде я просто скопировал тот же код и добавил второй для NSCameraUsageDescription – Mike

+1

да, извините, я скопировал часть раздела NSPhotoLibraryUsageDescription, который был выше. Я обновил ссылку на config.xml моего примера приложения, указывающего на правильные строки для NSCameraUsageDescription – jcesarmobile

2

Пожалуйста, откройте свой проект в Xcode и перейдите в .plist файл в папке ресурсов,

Тогда в конце в вас .plist файла нажмите на «+» и добавить поиск "Конфиденциальность - фото Librar y Описание использования "и добавьте его в соседнюю колонку.

же, пожалуйста, сделать для «NSCameraUsageDescription» снова нажмите на кнопку «+» и искать «конфиденциальности - камеры Использование Описание» и снова дать некоторое описание использования в колонке рядом.

он решит проблему.

Для получения дополнительной информации, пожалуйста, посетите следующий:

1) Stackoverflow question related to your question 2) Official apple doc for all required keys to be added

+0

Я использую телефонную развязку и сборку телефонных разговоров. У меня нет файла plist. Мне нужно добавить soemthing в мой config.xml – Mike

+0

, поэтому вам нужно следовать http://stackoverflow.com/questions/22769111/add-entry-to-ios-plist-file-via-cordova-config-xml и добавить выше разрешение – Naitik

1

Перед тем, как получить доступ к конфиденциальности чувствительных данных, таких как камеры, контакты и т.д., вы должны просить разрешения, ваше приложение будет падать при доступ к ним. Затем Xcode будет регистрироваться следующим образом:

This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSContactsUsageDescription key with a string value explaining to the user how the app uses this data.

Как с этим справиться? Как яблоко сказать:

You must statically declare your app’s intended use of protected data classes by including the appropriate purpose string keys in your Info.plist file.

В вашем случае, возможно, придется добавить следующее в вашем info.plist,

<!-- Photo Library --> <key>NSPhotoLibraryUsageDescription</key> <string>$(PRODUCT_NAME) photo use</string>

предложить Также посмотреть на эту link для получения более подробной информации по этому вопросу , Надеюсь, поможет.

Вы также можете проверить это plugin, который помогает в не манипулируя * -info.plist

+0

Как добавить это с помощью конструктора PhoneGap? нет info.plist только файл конфигурации? – Mike

+0

Файл @Mike info.plist будет доступен в папке platform/ios/ROJECT_NAME. вы можете использовать конфигурацию конфигурационных файлов для изменения info.plist. Посмотрите эту ссылку - http://cordova.apache.org/docs/en/6.x/plugin_ref/spec.html#config-file Надеюсь, что это поможет – Gandhi

+0

@ Gandhi он использует Phonegap Build, там нет платформ платформ или каким-либо способом ручного редактирования info.plist, способ сделать это, как я сказал, не знаю, почему он не пробовал мой ответ :( – jcesarmobile

0

Ни один из ответов здесь работал для меня именно поэтому я полагаю, что я хотел бы добавить свои два цента о том, как я получил эту работу.

Во-первых, я попробовал принятый ответ (тот, который написал jcesarmobile). Когда я попробовал это и запустил: phonegap build ios каждый раз, когда конфигурация была удалена из моего файла config.xml. Так что в следующий я попробовал решение, указанное здесь:

http://geeklearning.io/how-to-add-specific-configuration-parameters-to-ios-p-list-and-android-manifest/

Это не сработало в первый, Были ряд изменений, которые должны были быть сделаны, все из которых я получил от комментариев GitHub репо на файл , Я предлагаю вам запустить сборку, скопировать сообщение об ошибке и выполнить поиск в комментариях и сделать то, что они говорят. Как только я снова его построил, он все равно не работал при загрузке itunes connect.

В конце концов, я должен был открыть файл Info.plist и вручную поставить в следующем

<key>NSCameraUsageDescription</key> 
<string>We are using the Camera to (blah blah blah, your explanation)</string> 
<key>NSPhotoLibraryUsageDescription</key> 
<string>We are using the Photo Library to (your reason)</string> 
<key>NSMainNibFile</key> 

Даже если крючок не делал именно так, как она утверждала, что я до сих пор думаю, что это было важно, потому что, прежде чем я все это удалялось, и теперь он остается на месте.

Я надеюсь, что это поможет кому-то.

0

PhoneGap Build - для тех, кто с помощью кли-7.0.1, как, наверное, каждый человек должен быть в настоящее время:

<edit-config target="NSPhotoLibraryUsageDescription" file="*-Info.plist" mode="overwrite"> 
    <string>Used to allow the user to select media to upload to us</string> 
</edit-config> 

, которая не проходит внутри тега, просто внутри виджета тэгом как и все остальное. Измените строку на то, что вам подходит.