Полный список разрешений приложений для 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-уведомлений, запрещена.

Похоже, официального списка нет.

До сих пор я нашел эти разрешения, где жирным шрифтом являются основные разрешения:

  • доступ в Интернет
  • доступ к геолокации
  • использование сервисов уведомлений (получение и / или показ?)
  • разговаривать с другими приложениями
  • доступ к камере
  • доступ к микрофону
  • доступ к списку контактов телефона
  • доступ к календарям
  • доступ к фотографиям
  • планирование напоминаний
Другие вопросы по тегам