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

Полный список разрешений приложений iOS

Различные веб-сайты (например,) объясняют, что модель разрешений iOS работает следующим образом: все приложения имеют набор базовых разрешений (включая доступ в Интернет). Если во время выполнения требуется дополнительное разрешение, пользователю предлагается предоставить или отклонить его.

Какие разрешения я знаю iOS? Что входит в базовые разрешения? Что можно сделать без согласия пользователя? В основном я ищу список, подобный этому, только для iOS

4b9b3361

Ответ 1

В отличие от других ответов, существует официальный список разрешений, которые запрашиваются во время выполнения. Это находится в Руководстве по безопасности iOS (стр. 84):

iOS помогает предотвратить доступ приложений к личной информации пользователей без разрешения. Кроме того, в настройках пользователи могут видеть, каким приложениям им разрешен доступ к определенной информации, а также предоставить или отозвать любой доступ в будущем. Это включает в себя доступ к:

  • контакты
  • Календари
  • Напоминания
  • Фото
  • Движение и фитнес
  • Сервисы определения местоположения
  • Apple Music
  • Ваша музыкальная и видео активность
  • Микрофон
  • камера
  • HomeKit
  • Здоровье
  • Распознавание речи
  • Обмен Bluetooth
  • Ваша медиатека

Если пользователь входит в iCloud, приложения по умолчанию получают доступ к iCloud Drive. Пользователи могут контролировать доступ к каждому приложению в iCloud в настройках. Кроме того, iOS предоставляет ограничения, которые предотвращают перемещение данных между приложениями и учетными записями, установленными решением MDM, и теми, которые установлены пользователем.

Начиная с iOS 10 требуется предоставить описание запрашиваемого разрешения. В документации для разработчиков по фреймворкам вы увидите, требуется ли такое описание, и доступ к нему API приведет к запросу на разрешение (или к аварийному завершению, если не дано описание), например, см. Подсказку в документации для разработчиков фреймворка Contacts:

Важный

Приложение iOS, связанное с iOS 10.0 или после нее, должно включить в свой файл Info.plist ключи описания использования для типов данных, к которым необходимо получить доступ, иначе произойдет сбой. Для доступа к данным Контактов, в частности, необходимо включить NSContactsUsageDescription.

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

Ответ 2

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

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

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

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

Ответ 3

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

Ответ 4

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

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

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

Ответ 5

Я хотел бы дать разрешение на диммер приложение, чтобы постоянно изменять яркость. Прямо сейчас, это только изменяет яркость, пока экран не выключен. Когда он возвращается, яркость восстанавливается. Можно только изменить постоянную яркость в настройках яблока. Есть ли способ сделать это?