IOS 10 - Изменения в запросах разрешений камеры, микрофона и библиотеки фотографий, приводящие к сбою приложения
iOS 10, теперь требуется разрешение пользователя для доступа к библиотеке мультимедиа, фотографиям, камере и другому подобному оборудованию. Решением для этого является добавление их ключей в info.plist
с описанием для пользователя того, как мы используем их данные,
Я мог найти только несколько ключей
NSPhotoLibraryUsageDescription
NSMicrophoneUsageDescription
NSCameraUsageDescription
Я хочу знать, есть ли еще ключи для другого оборудования, как в iOS 10
если вы не предоставили info.plist
с надлежащим описанием ключей, ваше приложение info.plist
при info.plist
с использованием бета-версии XCode - 8.
Ответы
Ответ 1
Существует список всех Cocoa Keys
которые вы можете указать в файле Info.plist
:
https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html
(Цель Xcode → Информация → Пользовательские свойства цели iOS)
IOS уже требуется разрешение на доступ к микрофону, камере и медиа - библиотекой ранее (iOS6, iOS7), но так как iOS10
приложение будет вылетать, если вы не предоставите описание, почему вы просите разрешений (он не может быть пустым).
Секретные ключи с описанием примера: ![cheatsheet]()
Источник
Вы также можете открыть Info.plist в качестве исходного кода: ![source code]()
Источник
И добавьте их так:
<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
Обновление 2019:
В последние месяцы два моих приложения были отклонены во время обзора, потому что в описании использования камеры не было указано, что мне делать с фотографиями.
Мне пришлось изменить описание: ${PRODUCT_NAME} need access to the camera to take a photo
${PRODUCT_NAME} need access to the camera to update your avatar
даже если контекст приложения был очевиден (пользователь нажал на аватар).
Похоже, что Apple теперь уделяет еще больше внимания описаниям использования конфиденциальности, и мы должны подробно объяснить, почему мы запрашиваем разрешение.
Ответ 2
Ниже приведены коды для образца запроса запроса 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>
Ответ 3
Вы должны добавить это разрешение в 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