Подтвердить что ты не робот

IOS 10 - Изменения в запросах разрешений камеры, микрофона и библиотеки фотографий, приводящие к сбою приложения

iOS 10, теперь требуется разрешение пользователя для доступа к библиотеке мультимедиа, фотографиям, камере и другому подобному оборудованию. Решением для этого является добавление их ключей в info.plist с описанием для пользователя того, как мы используем их данные,

Я мог найти только несколько ключей

NSPhotoLibraryUsageDescription
NSMicrophoneUsageDescription
NSCameraUsageDescription

Я хочу знать, есть ли еще ключи для другого оборудования, как в iOS 10 если вы не предоставили info.plist с надлежащим описанием ключей, ваше приложение info.plist при info.plist с использованием бета-версии XCode - 8.

4b9b3361

Ответ 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>