https://github.com/devliusir/lcpermissionskit
LCPermissionsKit is a convenient wrapper on the macOS permissions API, including photos, contacts, reminders, and full disk access permissions
https://github.com/devliusir/lcpermissionskit
calendar cocoapods contacts full-disk-access macos photos reminder swift swift-package-manager
Last synced: about 2 months ago
JSON representation
LCPermissionsKit is a convenient wrapper on the macOS permissions API, including photos, contacts, reminders, and full disk access permissions
- Host: GitHub
- URL: https://github.com/devliusir/lcpermissionskit
- Owner: DevLiuSir
- License: mit
- Created: 2024-01-17T03:36:18.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-01-04T07:48:11.000Z (5 months ago)
- Last Synced: 2026-04-17T11:45:33.229Z (about 2 months ago)
- Topics: calendar, cocoapods, contacts, full-disk-access, macos, photos, reminder, swift, swift-package-manager
- Language: Swift
- Homepage:
- Size: 802 KB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

LCPermissionsKit is a convenient wrapper on the macOS permissions API, including photos, contacts, reminders, and full disk access permissions!
> [中文](README_CN.md) | [English](README.md)
Current implementation supports permissions for:
* [Calendar](#calendar)
* [Contacts](#contacts)
* [Reminders](#reminders)
* [Photos](#photos)
* [Full Disk Access](#full-disk-access)
## Permission Type
```swift
public enum LCPermissionType: Int {
case calendar = 0
case reminders
case contacts
case photos
case fullDiskAccess
}
```
## Usage
- Checking permission status
```swift
let status = LCPermissionsKit.shared.authorizationStatus(for: .fullDiskAccess)
switch status {
case .authorized:
print("authorized")
case .notDetermined:
print("notDetermined")
case .denied:
print("denied")
case .limited:
print("limited")
}
```
- Request Permission
```swift
LCPermissionsKit.shared.requestAuthorization(for: .fullDiskAccess) { status in
print(status)
}
```
## Calendar
10.9+
`NSCalendarsUsageDescription` key in info.plist is required.
## Contacts
10.11+
`NSContactsUsageDescription` key is required in Info.plist
## Reminders
10.9+
`NSRemindersUsageDescription` key is required in Info.plist
## Photos
10.13+
`NSPhotoLibraryUsageDescription` key is required in Info.plist
## Full Disk Access
10.14+
Calling for permissions opens Preferences->Privacy with selected "Full Disk Access" section.
## Installation
### CocoaPods
PermissionsKit is available through [CocoaPods](https://cocoapods.org). To install it, simply add the following line to your Podfile:
```swift
pod 'LCPermissionsKit'
```
### SwiftPackage
Add `https://github.com/DevLiuSir/LCPermissionsKit.git` in the [“Swift Package Manager” tab in Xcode](https://developer.apple.com/documentation/xcode/adding_package_dependencies_to_your_app).
## License
MIT License
Copyright (c) 2024 Marvin
## Author
| [
](https://github.com/DevLiuSir) | [DevLiuSir](https://github.com/DevLiuSir)
Software Engineer
[
][1] [
][2] [
][3]|
| :------------: | :------------: |
[1]: https://twitter.com/LiuChuan_
[2]: https://github.com/DevLiuSir
[3]: https://devliusir.com/