PermissionsKit is a Swift library that provides a unified API for requesting iOS permissions and checking their status.
The library solves the problem of managing iOS permissions through a fragmented system by offering a consistent interface across all permission types. It models permission states as `.authorized`, `.denied`, or `.notDetermined`, and ships each permission as a separate product that developers can selectively include. This modular approach means applications only compile the permissions they actually use, avoiding unnecessary declarations to App Review and reducing scrutiny about unused capabilities.
Developers should adopt this tool when building iOS applications that need straightforward permission handling without boilerplate. It suits projects of any size that want to avoid duplicating permission request logic. The library covers a comprehensive range of permissions including Bluetooth, Calendar, Camera, Contacts, Face ID, Health, Location, Media Library, Microphone, Motion, Notifications, Photo Library, Reminders, Siri, Speech Recognition, and Tracking. One important caveat: Face ID cannot distinguish between authorized and not-determined states, returning `.notDetermined` for both, with only `.denied` being reliably distinguishable. The library requires developers to add appropriate usage description keys to Info.plist for each permission, with localization support through xliff export or manual InfoPlist.strings files.
The project maintains active engagement with its user base through issue responses and pull request reviews. Development follows a pattern of incremental improvements and bug fixes rather than major feature additions. The maintainers prioritize code quality and API stability, with careful attention to how changes affect the compilation footprint and App Review visibility.