An open API service indexing awesome lists of open source software.

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

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!



Swift Versions


Supported Platforms


















> [中文](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/