sparrowcode/PermissionsKit

Universal API for request permission and get its statuses.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 32 minutes ago
Added to GitGenius on September 12th, 2026
Created on February 16th, 2017
Open Issues & Pull Requests: 4 (+0)
GitHub issues: Enabled
Number of forks: 481
Total Stargazers: 5,812 (+0)
Total Subscribers: 91 (+0)

Repository Insights (GitGenius)

Median issue/PR response: N/A
Mean response time: 9.1 hours
90th percentile: 36.3 hours
Tracked items: 4

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 2
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 490 days
Stale 30+ days: 2
Stale 90+ days: 2

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (3)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

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.