SPPermissions alternatives and similar libraries
Based on the "Permissions" category.
Alternatively, view SPPermission alternatives based on common mentions on social networks and blogs.
-
PermissionScope
Intelligent iOS permissions UI and unified API (Supports Location, Notifications, Camera, Contacts, Calendar, Photos, Microphone, BT, Activity Monitoring, HealthKit and CloudKit). -
RequestPermission
simple permission request with beautiful UI -
ClusterPrePermissions
Cluster's reusable pre-permissions utility that lets developers ask the users on their own dialog for photos or contacts access, before making the system-based request. This is based on the Medium post by Cluster describing the different ways to ask for iOS permissions (https://medium.com/p/96fa4eb54f2c). -
AREK
AREK is a clean and easy way to request any kind of iOS permission (with some nifty features ๐ค) -
STLocationRequest
Request the Location Services via a 3D 360ยฐ flyover MKMapView ๐บ -
ISHPermissionKit
A polite and unified way of asking for permission on iOS -
JLPermissions
An iOS pre-permissions utility that lets developers ask users on their own dialog for calendar, contacts, location, photos, reminders, twitter, push notifications and more, before making the system-based permission request. -
ICanHas
Simplifies iOS user permission requests (location, push notifications, camera, contacts, calendar, photos, etc).
Appwrite - The open-source backend cloud platform
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of SPPermissions or a related project?
README
PermissionsKit
Universal API for request permission and get its statuses. Available .authorized
, .denied
& .notDetermined
.
Community
Navigate
Permissions
Icon | Permission | Key for Info.plist |
Get Status | Make Request |
---|---|---|---|---|
Bluetooth | NSBluetoothAlwaysUsageDescription, NSBluetoothPeripheralUsageDescription | โ | โ | |
Calendar | NSCalendarsUsageDescription | โ | โ | |
Camera | NSCameraUsageDescription | โ | โ | |
Contacts | NSContactsUsageDescription | โ | โ | |
FaceID | NSFaceIDUsageDescription | โ | โ | |
Health | NSHealthUpdateUsageDescription, NSHealthShareUsageDescription | โ | โ | |
Location Always | NSLocationAlwaysAndWhenInUseUsageDescription | โ | โ | |
Location When In Use | NSLocationWhenInUseUsageDescription | โ | โ | |
Media Library | NSAppleMusicUsageDescription | โ | โ | |
Microphone | NSMicrophoneUsageDescription | โ | โ | |
Motion | NSMotionUsageDescription | โ | โ | |
Notification | โ | โ | ||
Photo Library | NSPhotoLibraryUsageDescription, NSPhotoLibraryAddUsageDescription | โ | โ | |
Reminders | NSRemindersUsageDescription | โ | โ | |
Siri | NSSiriUsageDescription | โ | โ | |
Speech Recognizer | NSSpeechRecognitionUsageDescription | โ | โ | |
Tracking | NSUserTrackingUsageDescription | โ | โ |
Installation
Ready to use on iOS 11+. Supports iOS, tvOS and SwiftUI
.
Swift Package Manager
In Xcode go to File
-> Packages
-> Update to Latest Package Versions
and insert url:
https://github.com/sparrowcode/PermissionsKit
or adding it to the dependencies
value of your Package.swift
:
dependencies: [
.package(url: "https://github.com/sparrowcode/PermissionsKit", .upToNextMajor(from: "9.0.0"))
]
Next, choose the permissions you need. But don't add all of them, because apple will reject app.
CocoaPods:
This is an outdated way of doing things. I advise you to use SPM. However, I will continue to support Cocoapods for some time.
Cocoapods Instalation
CocoaPods is a dependency manager. For usage and installation instructions, visit their website. To integrate using CocoaPods, specify it in your Podfile
:
pod 'PermissionsKit/NotificationPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
Due to Apple's new policy regarding permission access you need to specifically define what kind of permissions you want to access using subspecs.
pod 'PermissionsKit/CameraPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/ContactsPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/CalendarPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/PhotoLibraryPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/NotificationPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/MicrophonePermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/RemindersPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/SpeechRecognizerPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/LocationWhenInUsePermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/LocationAlwaysPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/MotionPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/MediaLibraryPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/BluetoothPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/TrackingPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/FaceIDPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/SiriPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
pod 'PermissionsKit/HealthPermission', :git => 'https://github.com/sparrowcode/PermissionsKit'
Request Permission
import PermissionsKit
import NotificationPermission
Permission.notification.request {
}
Status Permission
import PermissionsKit
import NotificationPermission
let authorized = Permission.notification.authorized
Keys in Info.plist
You need to add some keys to the Info.plist
file with descriptions, per Apple's requirements. You can get a plist of keys for permissions as follows:
let key = Permission.bluetooth.usageDescriptionKey
Warning Do not use the description as the name of the key.
Localisation
If you use xliff localization export, keys will be create automatically. If you prefer do the localization file manually, you need to create InfoPlist.strings
, select languages on the right side menu and add keys as keys in plist-file. See:
"NSCameraUsageDescription" = "Here description of usage camera";
Apps Using
If you use a PermissionsKit
, add your application via Pull Request.