<!--
{
  "documentType" : "article",
  "framework" : "Xcode",
  "identifier" : "/documentation/Xcode/configuring-game-controllers",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "Configuring game controllers"
}
-->

# Configuring game controllers

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

## Overview

Game controllers provide physical controls to trigger actions in your game.
Apple specifies the look and behavior of the controls to MFi accessory
manufacturers, which means you can rely on a consistent set of high-quality
controls in all supported game controllers.

A game that supports game controllers enables one or more different
*game-controller profiles* — objects that map physical controls on a device to
the inputs your game requires — such as Extended, Micro, and Directional. The
game also specifies the preferred order of use for these profiles. After
retrieving a profile from the connected game controller, your game periodically
requests the device’s current values or installs handlers that the system
invokes when those values change.

Before you can select the profiles your game supports, follow the steps in [Add a capability](/documentation/Xcode/adding-capabilities-to-your-app#Add-a-capability)
to add the Game Controllers capability to your game’s target.

![A screenshot of Xcode’s Capabilities library with a list of available capabilities on the left and an information pane on the right. The list shows a range of capabilities from Game Controllers to Keychain Sharing, and the Game Controllers capability is in a selected state. The text on the information pane explains that the Game Controllers capability adds supports for game controllers to your app.](images/com.apple.Xcode/game-controllers@2x.png)

After you add the Game Controllers capability to your game’s target, Xcode
appends the <doc://com.apple.documentation/documentation/BundleResources/Information-Property-List/GCSupportsControllerUserInteraction>
key to its `Info.plist` file with a value of `true` to indicate to the system
that your game supports game controllers.

> Note: The Game Controllers capability is only available to games that target
> iOS, iPadOS, tvOS, and visionOS.

### Select the supported game controller profiles

When you add support for game controllers to your app, you don’t integrate with
specific hardware. Instead, you integrate one or more of the game-controller
profiles that the <doc://com.apple.documentation/documentation/GameController>
framework provides. Each profile maps to a control layout that Apple defines,
and that profile describes a set of physical controls that the hardware
manufacturer guarantees to be available on the controller.

To indicate to the system which game-controller profiles your game supports,
perform the following steps:

1. Select your project in Xcode’s Project navigator.
2. Select the game’s target from the Targets list.
3. Click the Signing & Capabilities tab in the project editor.
4. Find the Game Controllers capability.
5. Select the appropriate game controller profiles by checking their
   checkboxes.

![A screenshot of the Game Controllers capability after you add it to a target. The Extended Gamepad, Micro Gamepad, and Directional Gamepad profiles are in an enabled state.](images/com.apple.Xcode/game-controller-types@2x.png)

Xcode adds the <doc://com.apple.documentation/documentation/BundleResources/Information-Property-List/GCSupportedGameControllers>
array to your game’s `Info.plist` file, if it’s not already present, and
populates it with names of the selected game-controller profiles. For more
information about each profile, see <doc://com.apple.documentation/documentation/GameController/GCExtendedGamepad>,
<doc://com.apple.documentation/documentation/GameController/GCMicroGamepad>,
and <doc://com.apple.documentation/documentation/GameController/GCDirectionalGamepad>.

Hardware controllers can support multiple profiles; if you enable more than one
game controller profile, drag the profiles and arrange them in
your preferred order. For example, if your game supports both the Extended and
Micro profiles, but optimizes gameplay for the Micro profile, place that
profile at the top of the list.

For more information, see the video [Tap into virtual and physical game controllers](https://developer.apple.com/videos/play/wwdc2021/10081)
and the sample code <doc://com.apple.documentation/documentation/GameController/supporting-game-controllers>.

---

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)