Contents

DevLiuSir/LCPermissionsKit

LCPermissionsKit is a convenient wrapper on the macOS permissions API, including photos, contacts, reminders, and full disk access permissions

Permission Type

public enum LCPermissionType: Int {
    case calendar = 0
    case reminders
    case contacts
    case photos
    case fullDiskAccess
}

Usage

  • Checking permission status
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
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. To install it, simply add the following line to your Podfile:


pod 'LCPermissionsKit'

SwiftPackage

Add https://github.com/DevLiuSir/LCPermissionsKit.git in the “Swift Package Manager” tab in Xcode.

License

MIT License

Copyright (c) 2024 Marvin

Star History

<picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=DevLiuSir/LCPermissionsKit&type=Date&theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=DevLiuSir/LCPermissionsKit&type=Date" /> <img alt="GPRG Star History Chart" src="https://api.star-history.com/svg?repos=DevLiuSir/LCPermissionsKit&type=Date" /> </picture>

Author

| <img src="https://avatars2.githubusercontent.com/u/11488337?s=460&v=4" width="120px;"/> | DevLiuSir<br/><br/><sub>Software Engineer</sub><br/> [<img align="center" src="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/twitter.svg" height="20" width="20"/>][1] [<img align="center" src="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/github.svg" height="20" width="20"/>][2] [<img align="center" src="https://raw.githubusercontent.com/iconic/open-iconic/master/svg/globe.svg" height="20" width="20"/>][3]| | :------------: | :------------: |

[1]: https://twitter.com/LiuChuan_ [2]: https://github.com/DevLiuSir [3]: https://devliusir.com/

Package Metadata

Repository: DevLiuSir/LCPermissionsKit

Stars: 8

Forks: 0

Open issues: 0

Default branch: main

Primary language: swift

License: MIT

Topics: calendar, cocoapods, contacts, full-disk-access, macos, photos, reminder, swift, swift-package-manager

README: README.md