Полный список разрешений приложения 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 file ключи описания использования для типы данных, к которым он должен получить доступ, или он рухнет. Чтобы получить доступ к данным контактов конкретно, он должен включать NSContactsUsageDescription.

кроме того, хороший источник доступных разрешений для каждой версии iOS/macOS находится в Ссылка Ключа Списка Свойств Информации (ищите UsageDescription содержащиеся в словах).


все ключи вы можете добавить в свой перечислены в документация Apple и описано.

для большинства фоновых режимов вам нужно добавить ключ в Info.plist, чтобы указать, что приложение хочет запустить код в фоновом режиме.

но эта информация не используется для запроса разрешения пользователя, только для обеспечения совместимости устройства.

только некоторые службы требуют разрешения пользователя (например, Службы геолокации и уведомлений), которые автоматически запрашиваются у пользователя при первой попытке вашего приложения использовать соответствующий API.


все, что находится в вашей песочнице, вы можете сделать. Таким образом, доступ в интернет и хранение файлов разрешены по умолчанию, но попытка поговорить с другим приложением, например, чтение рулона камеры или показ push-уведомлений не.


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

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

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