Request camera or microphone permission in an iOS app with one consistent function call instead of separate boilerplate for each.
Check whether a user has already granted location access before showing a map feature in your SwiftUI or UIKit app.
Add only the specific permission modules your app actually needs to avoid Apple App Store rejection for declared-but-unused permissions.
Handle notification permission prompts across iOS, macOS, tvOS, and watchOS from a single shared code path.
Must select only the specific permission modules your app uses when adding via Swift Package Manager, or Apple may reject the app.
PermissionsKit is a Swift library for Apple platforms that gives developers a single, consistent way to request and check the status of system permissions in their apps. When an iOS app wants to access the camera, microphone, location, contacts, or any other protected resource, it must first ask the user for permission. Each of these permissions normally requires different code to handle. PermissionsKit wraps all of them behind one unified interface. The library supports sixteen permissions in total: Bluetooth, Calendar, Camera, Contacts, Face ID, Health, Location, Media Library, Microphone, Motion, Notifications, Photo Library, Reminders, Siri, Speech Recognizer, and App Tracking. For each, you can both request access and check the current status, which will be one of three states: authorized, denied, or not yet determined. It works on iOS 12 and later, and also supports macOS, visionOS, tvOS, and watchOS. It is compatible with both UIKit and SwiftUI, the two main ways of building interfaces for Apple platforms. The library is set up as a modular package, meaning you only include the specific permissions your app actually needs rather than pulling in everything at once. The README notes this is important because Apple may reject apps that declare permissions they do not use. Installation is available through Swift Package Manager, which is the modern standard for adding libraries to Apple platform projects, or through CocoaPods, an older dependency manager that the maintainer still supports but no longer recommends. Adding the library via Xcode requires pointing it at the GitHub repository URL and then selecting the specific permission modules needed. No user interface components are included. The library only handles the logic of requesting and reading permission states.
← sparrowcode on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.