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 за ответ.

Ответ 11

Я проверил plist и обнаружил, что он не работает, только в информации о проекте, вам нужно добавить "Privacy - Camera....", тогда он должен работать. Надеюсь помочь вам.