<!--
{
  "documentType" : "article",
  "framework" : "GameKit",
  "identifier" : "/documentation/GameKit/deprecated-symbols",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Deprecated symbols"
}
-->

# Deprecated symbols

Review unsupported symbols and their replacements.

## Topics

### Deprecated classes

[`class GKAchievementViewController`](/documentation/GameKit/GKAchievementViewController)

An `GKAchievementViewController` object provides a standard user interface to display achievement progress for the local player. If the [`GKGameCenterViewController`](/documentation/GameKit/GKGameCenterViewController) class is available, you should use it instead.

[`class GKChallengeEventHandler`](/documentation/GameKit/GKChallengeEventHandler)

The `GKChallengeEventHandler` class is used to respond to events related to challenges sent or received by the local player.

[`class GKChallengesViewController`](/documentation/GameKit/GKChallengesViewController)

[`class GKChallenge`](/documentation/GameKit/GKChallenge)

A challenge issued by the local player to another player.

[`class GKScoreChallenge`](/documentation/GameKit/GKScoreChallenge)

A type of challenge where a player must beat the leaderboard score of another player.

[`class GKAchievementChallenge`](/documentation/GameKit/GKAchievementChallenge)

A type of challenge where a player must earn another player’s achievement.

[`class GKCloudPlayer`](/documentation/GameKit/GKCloudPlayer)

The object representing the currently signed-in iCloud user.

[`class GKGameCenterViewController`](/documentation/GameKit/GKGameCenterViewController)

The dashboard that allows players to access their Game Center data in your game.

[`class GKGameSession`](/documentation/GameKit/GKGameSession)

A game session you can use to save game data, invite other players, and create turn-based and real-time game apps.

[`class GKGameSessionSharingViewController`](/documentation/GameKit/GKGameSessionSharingViewController)

A user interface you can use to invite other users into a tvOS game session.

[`class GKFriendRequestComposeViewController`](/documentation/GameKit/GKFriendRequestComposeViewController)

Your game uses the `GKFriendRequestComposeViewController` class to present a screen that allows the local player to send friend requests to other players.

[`class GKLeaderboardViewController`](/documentation/GameKit/GKLeaderboardViewController)

The `GKLeaderboardViewController` class provides a standard user interface that displays leaderboard scores to the player. If the [`GKGameCenterViewController`](/documentation/GameKit/GKGameCenterViewController) class is available, you should use it instead.

[`class GKPeerPickerController`](/documentation/GameKit/GKPeerPickerController)

Provides a standard user interface to allow one iOS device to discover and connect to another.

[`class GKScore`](/documentation/GameKit/GKScore)

An object containing information for a score that was earned by the player.

[`class GKSession`](/documentation/GameKit/GKSession)

A [`GKSession`](/documentation/GameKit/GKSession) object provides the ability to discover and connect to nearby iOS devices using Bluetooth or Wi-fi.

[`class GKTurnBasedEventHandler`](/documentation/GameKit/GKTurnBasedEventHandler)

The [`GKTurnBasedEventHandler`](/documentation/GameKit/GKTurnBasedEventHandler) class is used to respond to important messages related to turn-based matches. To use it, call the [`shared()`](/documentation/GameKit/GKTurnBasedEventHandler/shared()) class method to get the singleton instance and assign an object that implements the [`GKTurnBasedEventHandlerDelegate`](/documentation/GameKit/GKTurnBasedEventHandlerDelegate) protocol to its [`delegate`](/documentation/GameKit/GKTurnBasedEventHandler/delegate) property. All methods are called on the main thread.

[`class GKVoiceChat`](/documentation/GameKit/GKVoiceChat)

A voice channel that allows players to speak with each other in a multiplayer game.

[`class GKVoiceChatService`](/documentation/GameKit/GKVoiceChatService)

The [`GKVoiceChatService`](/documentation/GameKit/GKVoiceChatService) class allows your application to connect two iOS devices into a voice chat.

[`class GKNotificationBanner`](/documentation/GameKit/GKNotificationBanner)

A Game Center-style banner that displays a message to the local player.

### Deprecated protocols

[`protocol GKAchievementViewControllerDelegate`](/documentation/GameKit/GKAchievementViewControllerDelegate)

An object implementing the [`GKAchievementViewControllerDelegate`](/documentation/GameKit/GKAchievementViewControllerDelegate) protocol is called when the user dismisses the achievements view controller. Typically, this protocol is implemented by the object in your game that originally displayed the achievements user interface.

[`protocol GKChallengeEventHandlerDelegate`](/documentation/GameKit/GKChallengeEventHandlerDelegate)

You implement the [`GKChallengeEventHandlerDelegate`](/documentation/GameKit/GKChallengeEventHandlerDelegate) delegate to control how challenges are displayed in your game.

[`protocol GKChallengesViewControllerDelegate`](/documentation/GameKit/GKChallengesViewControllerDelegate)

[`protocol GKChallengeListener`](/documentation/GameKit/GKChallengeListener)

An object that responds to challenge events.

[`protocol GKFriendRequestComposeViewControllerDelegate`](/documentation/GameKit/GKFriendRequestComposeViewControllerDelegate)

The [`GKFriendRequestComposeViewControllerDelegate`](/documentation/GameKit/GKFriendRequestComposeViewControllerDelegate) protocol is implemented by delegates of the [`GKFriendRequestComposeViewController`](/documentation/GameKit/GKFriendRequestComposeViewController) class. The delegate is called when the player dismisses the friend request.

[`protocol GKGameSessionEventListener`](/documentation/GameKit/GKGameSessionEventListener)

An event listener that handles game session events.

[`protocol GKLeaderboardViewControllerDelegate`](/documentation/GameKit/GKLeaderboardViewControllerDelegate)

The [`GKLeaderboardViewControllerDelegate`](/documentation/GameKit/GKLeaderboardViewControllerDelegate) protocol is implemented by delegates of the [`GKLeaderboardViewController`](/documentation/GameKit/GKLeaderboardViewController) class. The delegate is called when the player dismisses the leaderboard.

[`protocol GKPeerPickerControllerDelegate`](/documentation/GameKit/GKPeerPickerControllerDelegate)

The [`GKPeerPickerControllerDelegate`](/documentation/GameKit/GKPeerPickerControllerDelegate) protocol is implemented on an object to customize the behavior of a [`GKPeerPickerController`](/documentation/GameKit/GKPeerPickerController) object. The delegate is called by the peer picker to create a session object and to respond as the session is configured by the controller.

[`protocol GKSessionDelegate`](/documentation/GameKit/GKSessionDelegate)

An object implements the [`GKSessionDelegate`](/documentation/GameKit/GKSessionDelegate) protocol to control the behavior of a [`GKSession`](/documentation/GameKit/GKSession) object. The delegate is called when other visible peers change their state relative to the session. It is also called to determine whether another peer is allowed to connect to the session.

[`protocol GKTurnBasedEventHandlerDelegate`](/documentation/GameKit/GKTurnBasedEventHandlerDelegate)

The [`GKTurnBasedEventHandlerDelegate`](/documentation/GameKit/GKTurnBasedEventHandlerDelegate) protocol is implemented by an object to receive notifications events for turn-based matches. All methods are called on the main thread.

[`protocol GKVoiceChatClient`](/documentation/GameKit/GKVoiceChatClient)

The [`GKVoiceChatClient`](/documentation/GameKit/GKVoiceChatClient) protocol is implemented to control the behavior of the [`GKVoiceChatService`](/documentation/GameKit/GKVoiceChatService) object. The voice chat client has a number of responsibilities:

### Deprecated structures

[`struct GKVoiceChatServiceError`](/documentation/GameKit/GKVoiceChatServiceError-swift.struct)

[`struct GKSessionError`](/documentation/GameKit/GKSessionError-swift.struct)

[`struct GKGameSessionError`](/documentation/GameKit/GKGameSessionError)

Error codes for the game session domain.

### Deprecated constants

[`let GKGameSessionErrorDomain: String`](/documentation/GameKit/GKGameSessionErrorDomain)

The error domain for game sessions.

[`let GKSessionErrorDomain: String`](/documentation/GameKit/GKSessionErrorDomain)

An error occurred in [`GKSession`](/documentation/GameKit/GKSession).

[`let GKVoiceChatServiceErrorDomain: String`](/documentation/GameKit/GKVoiceChatServiceErrorDomain)

An error occurred in [`GKVoiceChatService`](/documentation/GameKit/GKVoiceChatService).

### Deprecated enumerations

[`enum Code`](/documentation/GameKit/GKGameSessionError/Code)

Error codes for the game session domain.

[`enum GKPeerConnectionState`](/documentation/GameKit/GKPeerConnectionState)

The state of a peer known to the session.

[`enum GKPeerPickerConnectionType`](/documentation/GameKit/GKPeerPickerConnectionType)

Network connections available to the peer picker dialog.

[`enum GKSendDataMode`](/documentation/GameKit/GKSendDataMode)

The mechanism used to transmit data to other peers.

[`enum Code`](/documentation/GameKit/GKSessionError-swift.struct/Code)

Error codes for the session error domain.

[`struct GKSessionError`](/documentation/GameKit/GKSessionError-swift.struct)

[`enum GKSessionMode`](/documentation/GameKit/GKSessionMode)

Modes that determine how a session interacts with other peers.

[`enum Code`](/documentation/GameKit/GKVoiceChatServiceError-swift.struct/Code)

Error codes for the voice chat service error domain.

[`struct GKVoiceChatServiceError`](/documentation/GameKit/GKVoiceChatServiceError-swift.struct)



---

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)