Repolode
sparrowcode

sparrowcode/PermissionsKit

Swift-библиотека для iOS с единым API для запроса системных разрешений и проверки их статуса.

Звёзды
5,812
Форки
479
Открытые issues
4
Последний коммит
2 месяца назад

Что это?

PermissionsKit предоставляет iOS-приложениям единый API для запроса системных разрешений, например доступа к камере, геопозиции, уведомлениям, фото и контактам, а также для проверки, разрешён ли доступ, запрещён или ещё не запрашивался. Каждое разрешение поставляется как отдельный продукт Swift package, поэтому приложение подключает только те разрешения, которые использует.

Библиотека также помогает с сопутствующей настройкой. Для каждого разрешения она предоставляет ключ описания цели использования из Info.plist и позволяет локализовать эти описания с помощью экспорта xliff или файлов InfoPlist.strings. Для FaceID есть документированное исключение: библиотека не может различить разрешённый доступ и состояние «ещё не запрашивался», поэтому достоверно определить можно только отказ.

Ключевые возможности

  • 01Запрашивайте разрешения и проверяйте их статус через единый API.
  • 02Каждое разрешение — отдельный продукт Swift package, что позволяет уменьшить размер бинарных файлов.
  • 03Поддерживает Bluetooth, Calendar, Camera, Location, Notifications, Photos, Health и другие разрешения.
  • 04Предоставляет ключ описания цели использования из Info.plist для каждого разрешения.
  • 05Позволяет локализовать описания цели использования с помощью экспорта xliff или файлов InfoPlist.strings.

Сценарии использования

  • Добавление в iOS-приложение запроса разрешений с единообразной обработкой разных типов разрешений.
  • Проверка текущего статуса разрешения перед показом функции, которой нужен доступ к камере или геопозиции.
  • Минимизация набора подключённых API разрешений в iOS-приложении для App Review.

Быстрый старт

  1. 1

    Добавьте пакет в Xcode через File → Add Package Dependencies, указав URL репозитория

  2. 2

    Выберите только продукты разрешений, которые использует ваше приложение, и импортируйте их в Swift

Что важно знать

  • Поддерживается только iOS.
  • FaceID не может отличить .authorized от .notDetermined, поэтому надёжным является только .denied.

В подборках

Темы

Частые вопросы

Что такое PermissionsKit?
Swift-библиотека для iOS с единым API для запроса системных разрешений и проверки их статуса. PermissionsKit предоставляет iOS-приложениям единый API для запроса системных разрешений, например доступа к камере, геопозиции, уведомлениям, фото и контактам, а также для проверки, разрешён ли доступ, запрещён или ещё не запрашивался. Каждое разрешение поставляется как отдельный продукт Swift package, поэтому приложение подключает только те разрешения, которые использует.
PermissionsKit можно использовать бесплатно? Какая у него лицензия?
PermissionsKit распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
PermissionsKit всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в PermissionsKit — 12 сент. 2026 г..
Для чего можно использовать PermissionsKit?
Добавление в iOS-приложение запроса разрешений с единообразной обработкой разных типов разрешений. Проверка текущего статуса разрешения перед показом функции, которой нужен доступ к камере или геопозиции. Минимизация набора подключённых API разрешений в iOS-приложении для App Review.
Как установить PermissionsKit?
Добавьте пакет в Xcode через File → Add Package Dependencies, указав URL репозитория Выберите только продукты разрешений, которые использует ваше приложение, и импортируйте их в Swift
Где скачать PermissionsKit?
Исходный код и инструкции по установке — на GitHub: https://github.com/sparrowcode/PermissionsKit

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Нативное приложение для iOS, которое одновременно записывает видео с двух камер через AVCaptureMultiCamSession и поддерживает режимы разделённого экрана и «картинка в картинке» с интерфейсом Liquid Glass.

10810SwiftMITОбновлён вчера