iOS 10 - изменения в запросе разрешений камеры, микрофона и библиотеки фотографий, приводящие к сбою приложения
iOS 10
Теперь требуется разрешение пользователя для доступа к библиотеке мультимедиа, фотографиям, камере и другому подобному оборудованию. Решением для этого является добавление их ключей в info.plist
с описанием для пользователя, как мы используем их данные,
Я мог найти только несколько ключей
NSPhotoLibraryUsageDescription
NSMicrophoneUsageDescription
NSCameraUsageDescription
Я хочу знать, есть ли еще ключи для другого оборудования, как в iOS 10
если вы не предоставили info.plist
При правильном описании ключей ваше приложение будет зависать при сборке с использованием бета-версии XCode - 8.
3 ответа
Есть список всех Cocoa Keys
что вы можете указать в своем Info.plist
файл:
(Цель Xcode -> Информация -> Пользовательские свойства цели iOS)
iOS уже требовала разрешения для доступа к микрофону, камере и медиа-библиотеке ранее (iOS6, iOS7), но так как iOS10
Приложение будет зависать, если вы не предоставите описание, почему вы запрашиваете разрешение (оно не может быть пустым).
Секретные ключи с описанием примера:
Вы также можете открыть Info.plist в качестве исходного кода: https://tisunov.github.io/assets/map-address-picker/info-plist-as-source-code.png
И добавьте их так:
<key>NSLocationAlwaysUsageDescription</key>
<string>${PRODUCT_NAME} always location use</string>
Список всех ключей конфиденциальности:
NSCameraUsageDescription
NSBluetoothPeripheralUsageDescription
NSCalendarsUsageDescription
NSContactsUsageDescription
NSHealthShareUsageDescription
NSHealthUpdateUsageDescription
NSHomeKitUsageDescription
NSLocationAlwaysUsageDescription
NSLocationUsageDescription
NSLocationWhenInUseUsageDescription
NSAppleMusicUsageDescription
NSMicrophoneUsageDescription
NSMotionUsageDescription
kTCCServiceMediaLibrary
NSPhotoLibraryUsageDescription
NSRemindersUsageDescription
NSSiriUsageDescription
NSSpeechRecognitionUsageDescription
NSVideoSubscriberAccountUsageDescription
Ниже приведены коды для примера разрешения запроса ios 10 для info.plist
,
Вы можете изменить свое собственное сообщение.
<key>NSCameraUsageDescription</key>
<string>${PRODUCT_NAME} Camera Usage</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>${PRODUCT_NAME} BluetoothPeripheral</string>
<key>NSCalendarsUsageDescription</key>
<string>${PRODUCT_NAME} Calendar Usage</string>
<key>NSContactsUsageDescription</key>
<string>${PRODUCT_NAME} Contact fetch</string>
<key>NSHealthShareUsageDescription</key>
<string>${PRODUCT_NAME} Health Description</string>
<key>NSHealthUpdateUsageDescription</key>
<string>${PRODUCT_NAME} Health Updates</string>
<key>NSHomeKitUsageDescription</key>
<string>${PRODUCT_NAME} HomeKit Usage</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>${PRODUCT_NAME} Use location always</string>
<key>NSLocationUsageDescription</key>
<string>${PRODUCT_NAME} Location Updates</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>${PRODUCT_NAME} WhenInUse Location</string>
<key>NSAppleMusicUsageDescription</key>
<string>${PRODUCT_NAME} Music Usage</string>
<key>NSMicrophoneUsageDescription</key>
<string>${PRODUCT_NAME} Microphone Usage</string>
<key>NSMotionUsageDescription</key>
<string>${PRODUCT_NAME} Motion Usage</string>
<key>kTCCServiceMediaLibrary</key>
<string>${PRODUCT_NAME} MediaLibrary Usage</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>${PRODUCT_NAME} PhotoLibrary Usage</string>
<key>NSRemindersUsageDescription</key>
<string>${PRODUCT_NAME} Reminder Usage</string>
<key>NSSiriUsageDescription</key>
<string>${PRODUCT_NAME} Siri Usage</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>${PRODUCT_NAME} Speech Recognition Usage</string>
<key>NSVideoSubscriberAccountUsageDescription</key>
<string>${PRODUCT_NAME} Video Subscribe Usage</string>
iOS 11 и плюс, если вы хотите добавить фото / изображение в свою библиотеку, то вы должны добавить этот ключ
<key>NSPhotoLibraryAddUsageDescription</key>
<string>${PRODUCT_NAME} library Usage</string>
Вы должны добавить это разрешение в Info.plist для iOS 10.
Фото:
Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use
Микрофон:
Key : Privacy - Microphone Usage Description
Value : $(PRODUCT_NAME) microphone use
Камера:
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use