<!--
{
  "documentType" : "article",
  "framework" : "BundleResources",
  "identifier" : "/documentation/BundleResources/protected-resources",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Protected resources"
}
-->

# Protected resources

Control an app’s access to protected system services and user data.

## Discussion

Before your app can access certain protected resources, like the Bluetooth interface, location information, or the user’s photos, the system asks the user for permission on behalf of your app.
The prompt that the system displays includes a `UsageDescription` string you provide, explaining why your app needs to access the protected resource.
Enter the string in the Signing and Capabilities editor for your app’s target, as described in <doc://com.apple.documentation/documentation/UIKit/requesting-access-to-protected-resources>.
Xcode adds the string as the value for the relevant [`Information Property List`](/documentation/BundleResources/Information-Property-List) key in your app’s build settings.
The topics below list the keys you use to provide usage-description strings for protected resources.

## Topics

### Essentials

  <doc://com.apple.documentation/documentation/UIKit/requesting-access-to-protected-resources>

  <doc://com.apple.documentation/documentation/Network/inspecting-app-activity-data>

  <doc://com.apple.documentation/documentation/Xcode/resetting-access-to-protected-resources-in-macOS>

### Bluetooth

[`NSBluetoothAlwaysUsageDescription`](/documentation/BundleResources/Information-Property-List/NSBluetoothAlwaysUsageDescription)

A message that tells people why the app needs access to Bluetooth.

[`NSBluetoothPeripheralUsageDescription`](/documentation/BundleResources/Information-Property-List/NSBluetoothPeripheralUsageDescription)

A message that tells people why the app is requesting the ability to connect to Bluetooth peripherals.

### Calendar and reminders

[`NSCalendarsFullAccessUsageDescription`](/documentation/BundleResources/Information-Property-List/NSCalendarsFullAccessUsageDescription)

A message that tells people why the app is requesting access to read and write their calendar data.

[`NSCalendarsWriteOnlyAccessUsageDescription`](/documentation/BundleResources/Information-Property-List/NSCalendarsWriteOnlyAccessUsageDescription)

A message that tells people why the app is requesting access to create calendar events.

[`NSRemindersFullAccessUsageDescription`](/documentation/BundleResources/Information-Property-List/NSRemindersFullAccessUsageDescription)

A message that tells people why the app is requesting access to read and write their reminders data.

  <doc://com.apple.documentation/documentation/EventKit/accessing-the-event-store>

### Camera and sound

  <doc://com.apple.documentation/documentation/AVFoundation/requesting-authorization-to-capture-and-save-media>

[Requesting Authorization for Media Capture on macOS](/documentation/BundleResources/requesting-authorization-for-media-capture-on-macos)

Prompt the user to authorize access to the camera and microphone.

[`NSAudioCaptureUsageDescription`](/documentation/BundleResources/Information-Property-List/NSAudioCaptureUsageDescription)

A message that tells people why your app is requesting access to capture system audio on macOS.

[`NSCameraUsageDescription`](/documentation/BundleResources/Information-Property-List/NSCameraUsageDescription)

A message that tells people why the app is requesting access to the device’s camera.

[`NSMainCameraUsageDescription`](/documentation/BundleResources/Information-Property-List/NSMainCameraUsageDescription)

A message that tells people why the app is requesting access to the device’s main camera.

[`NSMicrophoneUsageDescription`](/documentation/BundleResources/Information-Property-List/NSMicrophoneUsageDescription)

A message that tells people why the app is requesting access to the device’s microphone.

### Contacts

  <doc://com.apple.documentation/documentation/Contacts/accessing-the-contact-store>

[`NSContactsUsageDescription`](/documentation/BundleResources/Information-Property-List/NSContactsUsageDescription)

A message that tells people why the app is requesting access to their contacts.

### Face ID

  <doc://com.apple.documentation/documentation/LocalAuthentication/logging-a-user-into-your-app-with-face-id-or-touch-id>

[`NSFaceIDUsageDescription`](/documentation/BundleResources/Information-Property-List/NSFaceIDUsageDescription)

A message that tells people why the app is requesting the ability to authenticate with Face ID.

### Files and folders

[`NSDesktopFolderUsageDescription`](/documentation/BundleResources/Information-Property-List/NSDesktopFolderUsageDescription)

A message that tells people why the app needs access to their Desktop folder.

[`NSDocumentsFolderUsageDescription`](/documentation/BundleResources/Information-Property-List/NSDocumentsFolderUsageDescription)

[`NSDownloadsFolderUsageDescription`](/documentation/BundleResources/Information-Property-List/NSDownloadsFolderUsageDescription)

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

[`NSNetworkVolumesUsageDescription`](/documentation/BundleResources/Information-Property-List/NSNetworkVolumesUsageDescription)

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

[`NSRemovableVolumesUsageDescription`](/documentation/BundleResources/Information-Property-List/NSRemovableVolumesUsageDescription)

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

[`NSFileProviderDomainUsageDescription`](/documentation/BundleResources/Information-Property-List/NSFileProviderDomainUsageDescription)

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

[`NSFileProviderPresenceUsageDescription`](/documentation/BundleResources/Information-Property-List/NSFileProviderPresenceUsageDescription)

A message that tells people why the app’s file provider needs to determine which files the person is currently accessing.

### Game Center

[`NSGKFriendListUsageDescription`](/documentation/BundleResources/Information-Property-List/NSGKFriendListUsageDescription)

A message that tells people why the app needs access to their Game Center friends list.

### Health

  <doc://com.apple.documentation/documentation/HealthKit/setting-up-healthkit>

[`NSHealthClinicalHealthRecordsShareUsageDescription`](/documentation/BundleResources/Information-Property-List/NSHealthClinicalHealthRecordsShareUsageDescription)

A message to the user that explains why the app requested permission to read clinical records.

[`NSHealthShareUsageDescription`](/documentation/BundleResources/Information-Property-List/NSHealthShareUsageDescription)

A message that explains to people why the app requests permission to read samples from the HealthKit store.

[`NSHealthUpdateUsageDescription`](/documentation/BundleResources/Information-Property-List/NSHealthUpdateUsageDescription)

A message to the user that explains why the app requested permission to save samples to the HealthKit store.

[`NSHealthRequiredReadAuthorizationTypeIdentifiers`](/documentation/BundleResources/Information-Property-List/NSHealthRequiredReadAuthorizationTypeIdentifiers)

The clinical record data types that your app must get permission to read.

### Home

  <doc://com.apple.documentation/documentation/HomeKit/enabling-homekit-in-your-app>

[`NSHomeKitUsageDescription`](/documentation/BundleResources/Information-Property-List/NSHomeKitUsageDescription)

A message that tells people why the app is requesting access to their HomeKit configuration data.

### Location

[Choosing the  Location Services Authorization to Request](/documentation/BundleResources/choosing-the-location-services-authorization-to-request)

Determine the authorization your app needs to access location data.

[`NSLocationAlwaysAndWhenInUseUsageDescription`](/documentation/BundleResources/Information-Property-List/NSLocationAlwaysAndWhenInUseUsageDescription)

A message that tells people why the app is requesting access to their location information at all times.

[`NSLocationUsageDescription`](/documentation/BundleResources/Information-Property-List/NSLocationUsageDescription)

A message that tells people why the app is requesting access to their location information.

[`NSLocationWhenInUseUsageDescription`](/documentation/BundleResources/Information-Property-List/NSLocationWhenInUseUsageDescription)

A message that tells people why the app is requesting access to their location information while the app is running in the foreground.

[`NSLocationTemporaryUsageDescriptionDictionary`](/documentation/BundleResources/Information-Property-List/NSLocationTemporaryUsageDescriptionDictionary)

A collection of messages that explain why the app is requesting temporary access to their location.

[`NSLocationAlwaysUsageDescription`](/documentation/BundleResources/Information-Property-List/NSLocationAlwaysUsageDescription)

A message that tells people why the app is requesting access to their location at all times.

[`NSWidgetWantsLocation`](/documentation/BundleResources/Information-Property-List/NSWidgetWantsLocation)

A Boolean value that indicates a widget uses the user’s location information.

[`NSLocationDefaultAccuracyReduced`](/documentation/BundleResources/Information-Property-List/NSLocationDefaultAccuracyReduced)

A Boolean value that indicates whether the app requests reduced location accuracy by default.

### MediaPlayer

  <doc://com.apple.documentation/documentation/StoreKit/requesting-access-to-apple-music-library>

[`NSAppleMusicUsageDescription`](/documentation/BundleResources/Information-Property-List/NSAppleMusicUsageDescription)

A message that tells people why the app is requesting access to their media library.

### Messages

[`NSCriticalMessagingUsageDescription`](/documentation/BundleResources/Information-Property-List/NSCriticalMessagingUsageDescription)

A message that tells people why the app needs to send SMS messages.

### Motion

[`NSMotionUsageDescription`](/documentation/BundleResources/Information-Property-List/NSMotionUsageDescription)

A message that tells people why the app is requesting access to the device’s motion data.

[`NSFallDetectionUsageDescription`](/documentation/BundleResources/Information-Property-List/NSFallDetectionUsageDescription)

A message to the user that explains the app’s request for permission to access fall detection event data.

### Networking

[`NSLocalNetworkUsageDescription`](/documentation/BundleResources/Information-Property-List/NSLocalNetworkUsageDescription)

A message that tells people why the app is requesting access to the local network.

[`NSNearbyInteractionUsageDescription`](/documentation/BundleResources/Information-Property-List/NSNearbyInteractionUsageDescription)

A request for user permission to begin an interaction session with nearby devices.

[`NSNearbyInteractionAllowOnceUsageDescription`](/documentation/BundleResources/Information-Property-List/NSNearbyInteractionAllowOnceUsageDescription)

A one-time request for user permission to begin an interaction session with nearby devices.

### NFC

[`NFCReaderUsageDescription`](/documentation/BundleResources/Information-Property-List/NFCReaderUsageDescription)

A message that tells people why the app is requesting access to the device’s NFC hardware.

### Photos

  <doc://com.apple.documentation/documentation/PhotoKit/delivering-an-enhanced-privacy-experience-in-your-photos-app>

[`NSPhotoLibraryAddUsageDescription`](/documentation/BundleResources/Information-Property-List/NSPhotoLibraryAddUsageDescription)

A message that tells people why the app is requesting add-only access to their photo library.

[`NSPhotoLibraryUsageDescription`](/documentation/BundleResources/Information-Property-List/NSPhotoLibraryUsageDescription)

A message that tells people why the app is requesting access to their photo library.

### Scripting

[`NSAppleScriptEnabled`](/documentation/BundleResources/Information-Property-List/NSAppleScriptEnabled)

A Boolean value indicating whether AppleScript is enabled.

### Security

[`NSUpdateSecurityPolicy`](/documentation/BundleResources/Information-Property-List/NSUpdateSecurityPolicy)

A dictionary that identifies which apps or installer packages the operating system allows to write to the app’s bundle.

[`NSAppBundlesUsageDescription`](/documentation/BundleResources/Information-Property-List/NSAppBundlesUsageDescription)

A message that tells people why the app needs to access the contents of other apps’ bundles.

[`NSAppDataUsageDescription`](/documentation/BundleResources/Information-Property-List/NSAppDataUsageDescription)

A message that tells people why the app needs to access files in other apps’ sandbox containers.

[`NSUserTrackingUsageDescription`](/documentation/BundleResources/Information-Property-List/NSUserTrackingUsageDescription)

A message that informs the user why an app is requesting permission to use data for tracking the user or the device.

[`NSAppleEventsUsageDescription`](/documentation/BundleResources/Information-Property-List/NSAppleEventsUsageDescription)

A message that tells people why the app is requesting the ability to send Apple events.

[`NSSystemAdministrationUsageDescription`](/documentation/BundleResources/Information-Property-List/NSSystemAdministrationUsageDescription)

A message in macOS that tells people why the app is requesting to manipulate the system configuration.

[`ITSAppUsesNonExemptEncryption`](/documentation/BundleResources/Information-Property-List/ITSAppUsesNonExemptEncryption)

A Boolean value indicating whether the app uses encryption.

[`ITSEncryptionExportComplianceCode`](/documentation/BundleResources/Information-Property-List/ITSEncryptionExportComplianceCode)

The export compliance code provided by App Store Connect for apps that require it.

### Sensors

[`NSSensorKitUsageDescription`](/documentation/BundleResources/Information-Property-List/NSSensorKitUsageDescription)

A short description of the purpose of your app’s research study.

[`NSSensorKitUsageDetail`](/documentation/BundleResources/Information-Property-List/NSSensorKitUsageDetail)

A dictionary that includes keys for the specific information your app collects.

[`NSSensorKitPrivacyPolicyURL`](/documentation/BundleResources/Information-Property-List/NSSensorKitPrivacyPolicyURL)

A hyperlink to a webpage that displays the privacy policy for your app’s research study.

### Siri

  <doc://com.apple.documentation/documentation/SiriKit/requesting-authorization-to-use-siri>

[`NSSiriUsageDescription`](/documentation/BundleResources/Information-Property-List/NSSiriUsageDescription)

A message that tells people why the app is requesting to send user data to Siri.

### Speech

  <doc://com.apple.documentation/documentation/Speech/asking-permission-to-use-speech-recognition>

[`NSSpeechRecognitionUsageDescription`](/documentation/BundleResources/Information-Property-List/NSSpeechRecognitionUsageDescription)

A message that tells people why the app is requesting to send user data to Apple’s speech recognition servers.

### System Extensions

[`NSSystemExtensionUsageDescription`](/documentation/BundleResources/Information-Property-List/NSSystemExtensionUsageDescription)

A message that tells people why the app is trying to install a system extension bundle.

[`OSBundleUsageDescription`](/documentation/BundleResources/Information-Property-List/OSBundleUsageDescription)

A message that tells people why the app is trying to install a driver extension bundle.

### TV

[`NSVideoSubscriberAccountUsageDescription`](/documentation/BundleResources/Information-Property-List/NSVideoSubscriberAccountUsageDescription)

A message that tells people why the app is requesting access to their TV provider account.

### Vision

[`NSWorldSensingUsageDescription`](/documentation/BundleResources/Information-Property-List/NSWorldSensingUsageDescription)

A message that tells people why the app is requesting access to image tracking, plane detection, or scene reconstruction.

[`NSHandsTrackingUsageDescription`](/documentation/BundleResources/Information-Property-List/NSHandsTrackingUsageDescription)

A message that tells people why the app is requesting access to track their hand position and location.

[`NSAccessoryTrackingUsageDescription`](/documentation/BundleResources/Information-Property-List/NSAccessoryTrackingUsageDescription)

A message that tells a person why the app is requesting access to track accessory position and location.

### Wallet

[`NSFinancialDataUsageDescription`](/documentation/BundleResources/Information-Property-List/NSFinancialDataUsageDescription)

A message that tells people why the app is requesting access to financial data stored in Wallet.

[`NSIdentityUsageDescription`](/documentation/BundleResources/Information-Property-List/NSIdentityUsageDescription)

A message that tells people why the app is requesting identity information.

### Wi-Fi

[`UIRequiresPersistentWiFi`](/documentation/BundleResources/Information-Property-List/UIRequiresPersistentWiFi)

A Boolean value that indicates whether the app requires a Wi-Fi connection.

### Deprecated keys

[`NSCalendarsUsageDescription`](/documentation/BundleResources/Information-Property-List/NSCalendarsUsageDescription)

A message that tells people why the app is requesting access to their calendar data.

[`NSEnterpriseMCAMUsageDescription`](/documentation/BundleResources/Information-Property-List/NSEnterpriseMCAMUsageDescription)

A message that tells people why the app is requesting access to the device’s main camera.

[`NSRemindersUsageDescription`](/documentation/BundleResources/Information-Property-List/NSRemindersUsageDescription)

A message that tells people why the app is requesting access to their reminders.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)