A universal Swift API for requesting and checking iOS system permissions like camera, location, and notifications.
PermissionsKit is a Swift library that provides a universal API for requesting and checking the status of system permissions on Apple platforms like iOS and macOS. It solves the problem of handling disparate permission APIs by offering a consistent interface for permissions such as camera, location, notifications, and Face ID, simplifying development and ensuring compliance with App Store guidelines.
iOS and Apple platform developers building apps that require access to system features like camera, location, or notifications, and who need a streamlined, modular way to manage permission requests.
Developers choose PermissionsKit for its modular design that prevents App Store rejections by allowing selective permission imports, its wide coverage of 16+ permissions with a unified API, and its cross-platform support for iOS, macOS, visionOS, tvOS, and watchOS.
Universal API for request permission and get its statuses.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows importing only specific permissions, reducing binary size and helping avoid App Store rejections by not exposing unused permission APIs, as emphasized in the 'Why Modules' section.
Supports 16+ system permissions including Camera, Location, Health, and Tracking, with a detailed table listing each permission and its corresponding Info.plist key.
Provides a consistent interface like `Permission.[type].request` and `Permission.[type].authorized` across iOS, macOS, visionOS, tvOS, and watchOS, simplifying development.
Includes utility to fetch required usage description keys, aiding in proper configuration and localization, as shown in the 'Keys in Info.plist' section.
The README warns that for FaceID permission, it cannot accurately distinguish between `.authorized` and `.notDetermined` states—only `.denied` is reliably detected, which limits status checks.
Explicitly described as an 'outdated way' with the author advising SPM, potentially causing issues for teams still reliant on CocoaPods for dependency management.
Focuses solely on the API layer for permission requests and status checks, requiring developers to implement custom UI for permission dialogs, which adds development overhead.