Resolution Master

It is an ideal tool for managing system resolutions. You no longer need to understand the system API for each new type of resolution or search for it using stack overflow.


Supports the latest Big Sur features on iOS 14 and MacOS 11.

Works very well with Mac Catalyst

✋ Supports all existing types of permits

Enables crash-free operation by checking your registry keys

Use shut-off blocks even if they are not supplied by the system’s standard PLC.

Forget about power management and use only the shipping watch you prefer (optional).

Completely written in Swift.

Unites your code regardless of the type of authorization you are working with.

Includes native symbols and string constants for your user interface (optional)

Modular, add only what you need for your project

Contains nothing superfluous.

Supported types


  • iOS 10 / macOS 10.15 Catalina
  • Xcode 12.2
  • Fast 5


Cocoa beans

To integrate PermissionWizard into your Xcode project, add it to your pod :

Consent waiting pod

By default, the library is fully installed.

As a result of Apple’s system authorisation policy, your request may be rejected because it mentions an API that is not actually being used. It is recommended to install only the necessary components. In that case, you won’t have any problems. ⚠️

under PermissionWizard/Icons # Resolution Type Icons under PermissionWizard/Bluetooth under PermissionWizard/Calendar under PermissionWizard/Camera under PermissionWizard/Contacts under PermissionWizard/FaceID under PermissionWizard/Health. PermissionWizard/LocalNetwork’ pod ‘PermissionWizard/Location’ pod ‘PermissionWizard/Microphone’ pod ‘PermissionWizard/Music’ pod ‘PermissionWizard/Notifications’ pod ‘PermissionWizard/Photos’ pod ‘PermissionWizard/Recalls’ pod ‘PermissionWizard/Voice Recognition’.

Do not specify the PermissionWizard pod when installing individual components.


To integrate PermissionWizard into your Xcode project, add it to your :

github debug45/PermissionWizard

By default, the library is fully compiled when you create a project.

As a result of Apple’s system authorisation policy, your request may be rejected because it mentions an API that is not actually being used. It is recommended to include only the necessary elements. In that case, you won’t have any problems. ⚠️

To include only the necessary components, create the PermissionWizard.xcconfig file in the root folder of your project. Insert the correct parameters into the file using the following template :


Configure the first line of the template by deleting unnecessary component names.

How do I use item?

Using PermissionWizard is incredibly easy!

Import authorization wizard

Permission.contacts.checkStatus { Status in

Permission.location.requestAccess(whenInUseOnly: true) { status in
status.value //.whenInUseOnly
status.isAccuracyReducing // false
} (withMicrophone: where) {Status in // .assigned
status.microphone //.rejected

Some types of permissions allow you to add extra functionality. For example, if an iOS 14 user accesses their position with reduced accuracy, you can request temporary access with full accuracy:

Permission.location.requestTemporaryPreciseAccess(purposePlistKey: default) { Result
// true

Unfortunately, the ability to work with certain types of permissions is limited by the standard system API. For example, you can check the current status of the LAN resolution by simply asking for it.


For each type of permission you use, Apple asks you to add a line to your Info.plist describing the purpose of your access requests. PermissionWizard can help you find the name of the key you need:

Permission.faceID.useDescriptionPlistKey // NSFaceIDUsageDescription // NSHealthUpdateUsageDescription // NSHealthShareUsageDescription

If you request access to certain rights via the system’s standard API, but forget to modify your Info.plist, the application crashes. However, with the PermissionWizard, the crash will not occur – you will only see an informative warning in the debugging log.

Wire control

In some cases, the API in the standard system can return the result to another input queue. Instead of risking a crash and using DispatchQue.main.async, you can ask the permission wizard to always call up the undo blocks in your favorite queue:

Permission.preferredQue = .main // Default setting

User interface feature

If your user interface requires icons or line names for the type of permission, you can easily obtain them using the permission wizard :

let permission = speech recognition.self
ImagePicturePictureView.Image = permission.icon

titleLabel.text = permission.titleName // Language recognition
descriptionLabel.text = Allow access to your (permission.contextName) // language recognition.

Note that the icons are only available if the PermissionWizard component is installed (CocoaPods) or enabled (Carthago).

PermissionWizard provides symbols without curves or edges. If you want a design like the iOS settings, use the following code:

imageView.layer.cornerRadius = 7
imageView.cliToBounds = true

if #available(iOS 11, *), permission.shouldBorderIcon {
imageView.layer.borderWidth = 1 / (window ?.screen.scale ? ?? 1)
imageView.layer.borderColor = UIColor(white: 0,898, alpha: 1).cgColor // #E5E5

Known problems

  • The Bluetooth resolution always returns the .allow for simulators.
  • LAN resolution does not work on simulators
  • Microphone resolution always provides authorizations for iOS 10 or 11 simulators
  • Music approval does not work on simulators running iOS 12.


  • NFC Authorization Support
  • Compatibility with the Swift package manager


You May Also Like

🥇 Calculate the Cost of a Product in Excel  Step by Step Guide ▷ 2020

If you want to sell a product or offer a service to…

🥇 MICROSOFT POWERPOINT  What is it? + Alternatives ▷ 2020

One of the advantages of using Office software packages is that you…

Fix SameSite cookie issue in chrome browser

In this article I will explain how we can solve a new…

Pytorch Image Augmentation using Transforms.

In-depth learning models generally require a lot of data for learning. In…