Полный список разрешений приложений для iOS
Различные веб-сайты ( например) объясняют, что модель разрешений iOS работает следующим образом: все приложения имеют набор базовых разрешений (включая доступ в Интернет). Если во время выполнения требуется дополнительное разрешение, пользователя спрашивают, предоставлять или отклонять его.
Какие разрешения знает iOS? Что принадлежит основному набору разрешений? Что можно сделать без согласия пользователя? В основном я ищу список, похожий на этот, только для iOS
4 ответа
В отличие от других ответов, существует официальный список разрешений, которые запрашиваются во время выполнения. Это находится в Руководстве по безопасности iOS (стр. 73):
iOS помогает предотвратить доступ приложений к личной информации пользователя без разрешения. Кроме того, в настройках пользователи могут видеть, каким приложениям им разрешен доступ к определенной информации, а также предоставить или отозвать любой доступ в будущем. Это включает в себя доступ к:
- контакты
- Календари
- Напоминания
- Фото
- Движение и фитнес
- Сервисы определения местоположения
- Apple Music
- Ваша музыкальная и видео деятельность
- Аккаунты в социальных сетях, такие как Twitter и Facebook
- Микрофон
- камера
- HomeKit
- Здоровье
- Распознавание речи
- Обмен Bluetooth
- Ваша медиатека
Если пользователь входит в iCloud, приложения по умолчанию получают доступ к iCloud Drive. Пользователи могут контролировать доступ каждого приложения в iCloud в настройках. Кроме того, iOS предоставляет ограничения, которые предотвращают перемещение данных между приложениями и учетными записями, установленными решением MDM, и теми, которые установлены пользователем.
Начиная с iOS 10 требуется предоставить описание для запрашиваемого разрешения. В документации для разработчиков по фреймворкам вы увидите, требуется ли такое описание, и доступ к его API приведет к запросу на разрешение (или к аварийному завершению, если не дано описание), например, см. Подсказку в документации для разработчиков Contacts
рамки:
Важный
Приложение iOS, связанное с iOS 10.0 или позже, должно включать в себя
Info.plist
подайте ключи описания использования для типов данных, к которым он должен получить доступ, или он потерпит крах. Для доступа к данным Контактов, в частности, они должны включатьNSContactsUsageDescription
,
Кроме того, хороший источник доступных разрешений для каждой версии iOS/macOS находится в справочнике ключей списка свойств информации (найдите UsageDescription
содержится в словах).
Все ключи, которые вы можете добавить в свой info.plist
файл перечислены в документации Apple и описаны.
Для большинства фоновых режимов вам нужно добавить ключ в Info.plist, чтобы указать, что приложение хочет запускать код в фоновом режиме.
Но эта информация не используется для запроса разрешения пользователя, а только для обеспечения совместимости устройства.
Только некоторые службы требуют разрешения пользователя (например, службы геолокации и уведомлений), которые автоматически запрашиваются у пользователя при первой попытке вашего приложения использовать соответствующий API.
Все, что находится в вашей песочнице, вы можете сделать. Таким образом, доступ к Интернету и хранение файлов разрешены по умолчанию, но попытка поговорить с другим приложением, например, чтение ролика камеры или показ push-уведомлений, запрещена.
Похоже, официального списка нет.
До сих пор я нашел эти разрешения, где жирным шрифтом являются основные разрешения:
- доступ в Интернет
- доступ к геолокации
- использование сервисов уведомлений (получение и / или показ?)
- разговаривать с другими приложениями
- доступ к камере
- доступ к микрофону
- доступ к списку контактов телефона
- доступ к календарям
- доступ к фотографиям
- планирование напоминаний