<!--
{
  "documentType" : "article",
  "framework" : "Xcode",
  "identifier" : "/documentation/Xcode/capabilities",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Capabilities"
}
-->

# Capabilities

Enable services that Apple provides, such as In-App Purchase, Push Notifications,
Apple Pay, iCloud, and many others.

## Discussion

Capabilities simplify the configuration process for many of Apple’s services,
some of which require you to configure specific <doc://com.apple.documentation/documentation/BundleResources/Entitlements> or change your
app’s provisioning profile. When you add a capability to an app or other target
in your project, Xcode automatically configures that target to use the
corresponding service. For example, Xcode might add a required entitlement to
a new entitlements file and configure the project to use those entitlements.
When Xcode needs you to provide additional information, it presents a
simplified UI for you to specify that information.

![A screenshot of Xcode’s Capabilities library. On the left is a list of available capabilities where you can double-click or drag a capability to add it to the selected target. On the right is a description of the selected capability. There’s a text box at the top that allows you to filter the list of capabilities.](images/com.apple.Xcode/capabilities@2x.png)

> Note: You add most capabilities directly from Xcode, but some app services —
> such as Game Center and In-App Purchase — require additional setup in App Store
> Connect and your developer account. For more information, see the documentation
> below for the specific capability.

Xcode automatically manages your target’s entitlements file based on the capabilities you add to that target.
If you need to edit the file manually, see [Editing property list files](/documentation/Xcode/editing-property-list-files).

## Topics

### Essentials

[Adding capabilities to your app](/documentation/Xcode/adding-capabilities-to-your-app)

Configure your target to include and customize capabilities that provide access
to Apple’s app services.

### App execution

[Configuring background execution modes](/documentation/Xcode/configuring-background-execution-modes)

Indicate the background services your app requires to continue executing in the
background in iOS, iPadOS, tvOS, visionOS, and watchOS.

[Configuring custom fonts](/documentation/Xcode/configuring-custom-fonts)

Register your app as a provider or consumer of systemwide custom fonts.

[Configuring game controllers](/documentation/Xcode/configuring-game-controllers)

Enhance gameplay input by enabling the discovery, configuration, and use of
physical game controllers.

[Configuring Maps support](/documentation/Xcode/configuring-maps-support)

Register your iOS routing app to provide point-to-point directions to Maps and
other apps.

[Configuring Siri support](/documentation/Xcode/configuring-siri-support)

Enable your app and its Intents extension to resolve, confirm, and handle
user-driven Siri requests for your app’s services.

### Commerce

[Configuring Apple Pay support](/documentation/Xcode/configuring-apple-pay-support)

Process payments in your app using the payment information the user stores on
their device.

[Configuring Sign in with Apple support](/documentation/Xcode/configuring-sign-in-with-apple)

Allow users to create an account and sign in to your app with their Apple Account.

[Configuring Wallet support](/documentation/Xcode/configuring-wallet-support)

Access the user’s Wallet to add, update, and display your app’s passes.

### Data management

[Configuring an associated domain](/documentation/Xcode/configuring-an-associated-domain)

Create a two-way association between your app and your website to enable
universal links, Handoff, App Clips, and shared web credentials.

[Configuring app groups](/documentation/Xcode/configuring-app-groups)

Enable communication and data sharing between multiple installed apps created
by the same developer.

[Configuring iCloud services](/documentation/Xcode/configuring-icloud-services)

Share user or app data among multiple instances of your app running on
different devices.

### Network

[Configuring network extensions](/documentation/Xcode/configuring-network-extensions)

Customize the various capabilities of your app’s networking stack, such as
proxying DNS queries or creating packet tunnels.

  <doc://com.apple.documentation/documentation/UserNotifications/registering-your-app-with-apns>

[Configuring Group Activities](/documentation/Xcode/configuring-group-activities)

Leverage FaceTime infrastructure to create coordinated experiences users can
share.

[Configuring media device discovery](/documentation/Xcode/configuring-media-device-discovery)

Add a third-party media device or protocol as a streaming option in the same system menu as AirPlay.

### Security

[Configuring Family Controls](/documentation/Xcode/configuring-family-controls)

Add the Family Controls entitlement to enable parental control features in your app and its Screen Time API app extensions.

[Configuring the hardened runtime](/documentation/Xcode/configuring-the-hardened-runtime)

Protect the runtime integrity of your macOS app by restricting access to
sensitive resources and preventing common exploits.

[Configuring the macOS App Sandbox](/documentation/Xcode/configuring-the-macos-app-sandbox)

Protect system resources and user data from compromised apps by restricting
access to the file system, network connections, and more.

[Configuring keychain sharing](/documentation/Xcode/configuring-keychain-sharing)

Share keychain items between multiple apps belonging to the same developer.

[Protecting local app data using containers on macOS](/documentation/Xcode/protecting-local-app-data-using-containers)

Secure your app’s local storage data from unauthorized access and modification.

[Accessing app group containers in your existing macOS app](/documentation/Xcode/accessing-app-group-containers)

Ensure your app has app group container entitlements and macOS can authorize them.

### User data

[Configuring HealthKit access](/documentation/Xcode/configuring-healthkit-access)

Read and write health and activity data in the Health app.

[Configuring HomeKit access](/documentation/Xcode/configuring-homekit-access)

Discover compatible accessories and communicate with configured accessories and
services to perform actions.



---

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)