NSCameraUsageDescription при сбое во время работы iOS 10.0?
Использование iOS 10.0
последней беты. Я попытался использовать Camera для сканирования штрих-кода в моем приложении, и он обрушился на эту ошибку времени выполнения.
Это приложение потерпело крах, поскольку оно попыталось получить доступ к конфиденциальной информации данных без описания использования. Приложение Info.plist должно содержать ключ NSCameraUsageDescription со строковым значением, объясняющим как приложение использует эти данные.
Поместите этот ключ в plist, но он все еще разбился?
Ответы
Ответ 1
После iOS 10 вам необходимо определить и предоставить описание использования всех конфиденциальных данных системы, доступных вашему приложению в Info.plist, как показано ниже:
Календарь
Key : Privacy - Calendars Usage Description
Value : $(PRODUCT_NAME) calendar events
Напоминание:
Key : Privacy - Reminders Usage Description
Value : $(PRODUCT_NAME) reminder use
Контакт:
Key : Privacy - Contacts Usage Description
Value : $(PRODUCT_NAME) contact use
Фото:
Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use
Обмен Bluetooth:
Key : Privacy - Bluetooth Peripheral Usage Description
Value : $(PRODUCT_NAME) Bluetooth Peripheral use
Микрофон:
Key : Privacy - Microphone Usage Description
Value : $(PRODUCT_NAME) microphone use
Камера:
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use
Местоположение:
Key : Privacy - Location Always Usage Description
Value : $(PRODUCT_NAME) location use
Key : Privacy - Location When In Use Usage Description
Value : $(PRODUCT_NAME) location use
Хит:
Key : Privacy - Health Share Usage Description
Value : $(PRODUCT_NAME) heath share use
Key : Privacy - Health Update Usage Description
Value : $(PRODUCT_NAME) heath update use
HomeKit:
Key : Privacy - HomeKit Usage Description
Value : $(PRODUCT_NAME) home kit use
Медиа-библиотека:
Key : Privacy - Media Library Usage Description
Value : $(PRODUCT_NAME) media library use
Движение:
Key : Privacy - Motion Usage Description
Value : $(PRODUCT_NAME) motion use
Распознавание речи:
Key : Privacy - Speech Recognition Usage Description
Value : $(PRODUCT_NAME) speech use
SiriKit:
Key : Privacy - Siri Usage Description
Value : $(PRODUCT_NAME) siri use
Поставщик ТВ:
Key : Privacy - TV Provider Usage Description
Value : $(PRODUCT_NAME) tvProvider use
Подробную информацию можно найти в этой ссылке.
Ответ 2
Так как Apple изменила способ доступа к любым пользовательским типам данных в iOS 10
.
Вам нужно добавить ключ "Privacy - Camera usage description
" к вашим приложениям Info.plist
и их информацию об использовании, которая применяется для вашего приложения, как показано ниже в примере, который я использовал для сканирования штрих-кодов.
Для получения дополнительной информации см. снимок экрана ниже.
![введите описание изображения здесь]()
Ответ 3
Вы должны добавить этот ниже ключ в info.plist.
NSCameraUsageDescription
Или
Privacy - Camera usage description
И добавьте описание использования.
Подробные скриншоты доступны в этой ссылке
Ответ 4
Альтернативно откройте Info.plist в качестве исходного кода и добавьте следующее:
<key>NSCameraUsageDescription</key>
<string>Camera usage description</string>
Ответ 5
Используйте эти исходные значения и скопируйте в info.plist
<key>NSCalendarsUsageDescription</key>
<string>$(PRODUCT_NAME) calendar events</string>
<key>NSRemindersUsageDescription</key>
<string>$(PRODUCT_NAME) reminder use</string>
<key>NSCameraUsageDescription</key>
<string>This app requires to access your photo library to show image on profile and send via chat</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app requires to access your microphone to record video with your voice send via chat</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>This app requires to access your photo library to show image on profile and send via chat</string>
<key>NSContactsUsageDescription</key>
<string>$(PRODUCT_NAME) contact use</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>$(PRODUCT_NAME) location use</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>$(PRODUCT_NAME) location use</string>
Ответ 6
пользовательский интерфейс xcode немного изменился с одной версии на другую, поэтому здесь вы обновляете plist для 9.0 beta 4, если это помогает
Project → Target → Info ![введите описание изображения здесь]()
Ответ 7
Еще один пример, с которым я столкнулся при попытке использовать камеру, состоял в том, что он все еще был загружен, давая те же _CRASHING_DUE_TO_PRIVACY
даже после добавления "Описание использования камеры". После того, как вы не смогли получить что-либо осязаемое из стека вызовов, переключитесь на "Организатор" и просмотрите отчеты о сбоях на устройстве. Я обнаружил, что на самом деле он жаловался на конфиденциальность из-за отсутствия "описания использования микрофона". Я добавил, что и избавился от такого загадочного разлома.
Ответ 8
Для тех, кто все еще получает ошибку, даже если вы добавили правильные ключи в Info.plist:
Убедитесь, что вы добавляете ключ в правильный Info.plist. Более новая версия xCode, по-видимому, имеет 3 Info.plist.
Один находится в папке с именем вашего приложения, которое решило проблему для меня.
Второй находится под YourappnameTests, а третий находится под YourappnameUITests.
Надеюсь, поможет.
Ответ 9
Если вы используете Ionic, вы можете решить эту проблему непосредственно из config.xml, добавив внутрь тега ios платформы:
<platform name="ios">
.
.
.
<config-file target="*-Info.plist" parent="NSPhotoLibraryUsageDescription">
<string>photo library usage description</string>
</config-file>
<config-file target="*-Info.plist" parent="NSCameraUsageDescription">
<string>camera usage description</string>
</config-file>
.
.
.
</platform>
Я бы тоже хотел поблагодарить @BHUPI за ответ.
Ответ 10
Вы делаете это, добавляя ключ использования в ваш Info.plist приложений вместе со строкой назначения. NSCameraUsageDescription Указывает причину для вашего приложения для доступа к камере устройства
https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html
Ответ 11
Я проверил plist и обнаружил, что он не работает, только в информации о проекте, вам нужно добавить "Privacy - Camera....", тогда он должен работать. Надеюсь помочь вам.