Property List Key

NSDocumentsFolderUsageDescription

A message that tells the user why the app needs access to the user’s Documents folder.

Details

Name
Privacy - Documents Folder Usage Description
Type
string

Discussion

The user implicitly grants your app access to a file in the Documents folder when selecting the file in an Open or Save panel, dragging it onto your app, or opening it in Finder. Your app can access that file right away and any time in the future. In addition, if your app creates a new file in the Documents folder, the app can access that file without user consent.

The first time your app tries to access a file in the user’s Documents folder without implied user consent, the system prompts the user for permission to access the folder’s contents. Add the NSDocumentsFolderUsageDescription key to your app’s Information Property List file to provide a message that explains why your app needs access. The usage description is optional, but highly recommended.

App Sandbox enforces stricter limits on Documents folder access, so that policy may supersede this one if your app enables sandboxing. See App Sandbox Entitlements for more information.

After the user chooses whether to grant access, the system remembers the user’s choice. To reset permissions, use the tccutil command line utility with your app’s bundle ID:

$ tccutil reset SystemPolicyDocumentsFolder <bundleID>

See Also

Foundation

property list key NSAppTransportSecurity

A description of changes made to the default security for HTTP connections.

Name: App Transport Security Settings
property list key NSAppleScriptEnabled

A Boolean value indicating whether AppleScript is enabled.

Name: Scriptable
property list key NSExtension

The properties of an app extension.

property list key NSHighResolutionCapable

A Boolean value indicating whether the Cocoa app supports high-resolution displays.

Name: High Resolution Capable
property list key NSHumanReadableCopyright

A human-readable copyright notice for the bundle.

Name: Copyright (human-readable)
property list key NSJavaRoot

The root directory for the app’s Java class files.

Name: Java root directory
property list key NSMainNibFile

The name of an app’s main user interface file.

Name: Main nib file base name
property list key NSMainStoryboardFile

The name of an app's storyboard resource file.

Name: Main storyboard file base name
property list key NSPrincipalClass

The name of the bundle’s main executable class.

Name: Principal class
property list key NSSupportsAutomaticGraphicsSwitching

A Boolean value indicating whether an OpenGL app may utilize the integrated GPU.

Name: Supports Automatic Graphics Switching
property list key NSSupportsPurgeableLocalStorage

A Boolean value indicating whether the app continues working if the system purges the local storage.

property list key NSDesktopFolderUsageDescription

A message that tells the user why the app needs access to the user’s Desktop folder.

Name: Privacy - Desktop Folder Usage Description
Beta
property list key NSDownloadsFolderUsageDescription

A message that tells the user why the app needs access to the user’s Downloads folder.

Name: Privacy - Downloads Folder Usage Description
Beta
property list key NSNetworkVolumesUsageDescription

A message that tells the user why the app needs access to files on a network volume.

Name: Privacy - Network Volumes Usage Description
Beta
property list key NSRemovableVolumesUsageDescription

A message that tells the user why the app needs access to files on a removable volume.

Name: Privacy - Removable Volumes Usage Description
Beta
property list key NSFileProviderPresenceUsageDescription

A message that tells the user why the app needs to be informed when other apps access files that it manages.

Name: Privacy - File Provider Presence Usage Description
Beta
property list key NSFileProviderDomainUsageDescription

A message that tells the user why the app needs access to files managed by a file provider.

Name: Privacy - Access to a File Provider Domain Usage Description
Beta

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software