2015-04-27 2 views
7

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

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

ответ

8

В отличии от других ответов, есть официальный список разрешений, которые задают во время выполнения. Он находится в iOS Security Guide (стр. 62):

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

  • Контакты
  • Микрофон
  • Календари
  • камеры
  • Напоминания
  • HomeKit
  • Фотографии
  • Здоровье
  • двигательную активность и фитнес
  • распознавания речи
  • Расположение Услуги
  • Bluetooth обмена
  • медиа-библиотеку
  • социальных счетов СМИ, такие как Twitter и Facebook

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

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

Важной

ИОСОМ приложения связана или после прошивки 10.0 должен включать в своем файле Info.plist использования описания ключей для типов данных, которые он должен иметь доступ или его сбой. Чтобы получить доступ к данным о контактах, он должен содержать NSContactsUsageDescription.

Кроме того, хороший источник доступных разрешений для каждой версии IOS/MacOS находится в Information Property List Key Reference (поиск UsageDescription, содержащихся в словах).

+0

Ницца, наконец-то официальный! Тем не менее, чтение «Это включает ...» Я полагаю, что этот список также не является полным. Например, я предполагаю, что есть разрешение на доступ к геолокации пользователя, которая не указана в списке. –

+0

@JackMiller Это верно, возможно, потому, что службы определения местоположения описаны в предыдущем абзаце. Разница в том, что существуют разные разрешения для местоположения, такие как «Всегда» и «При использовании». Но тогда, однако, для HealthKit существует более мелкозернистый контроль. Это определенно может быть более тщательным. – Max

4

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

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

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

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

+0

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

2

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

+0

«Что-нибудь в моей песочнице». Это гадание, которое я хочу избежать. Я ищу некоторую (официальную) документацию. –

+2

Существует не какой-либо список, который предоставляет яблоко, вам нужно найти отдельные бит разрешений, разбросанных по бокам. –

1

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

До сих пор я нашел эти разрешения, где смелые из них являются основными разрешениями: (? Приема и/или показ)

  • доступ в Интернет
  • обращающиеся Geolocation
  • с помощью уведомлений службы
  • разговоры с другими приложениями
  • камера доступа
  • доступ микрофона
  • Доступ к списку контактов телефона
  • обращающихся календарей
  • обращающихся фото
  • планирования напоминаний