One Logo Pool Ball
Graphics and Games · IOS API REFERENCE

GameKit

Enable players to interact with friends, compare leaderboard ranks, earn achievements, and participate in multiplayer games.

77 types

611 callable entries

14 skipped

98% entry coverage

Generated from iOS SDK 27.1. Availability is shown on each declaration; permissions and entitlements still apply.

Types

GKAccessPoint

class · iOS 14.0+

GKAccessPoint.Location

enum · iOS 14.0+

GKAchievement

class · iOS 4.1+

GKAchievementChallenge

class · iOS 6.0+ · Deprecated in iOS 26.0

GKAchievementDescription

class · iOS 4.1+

GKBasePlayer

class · iOS 10.0+

GKChallenge

class · iOS 6.0+ · Deprecated in iOS 26.0

GKChallengeComposeCompletionBlock

typealias · iOS 8.0+ · Deprecated in iOS 17.0

GKChallengeComposeHandler

typealias · iOS 17.0+ · Deprecated in iOS 26.0

GKChallengeDefinition

class · iOS 26.0+

GKChallengeListener

protocol · iOS 7.0+ · Deprecated in iOS 26.0

GKChallengeState

enum · iOS 6.0+ · Deprecated in iOS 26.0

GKCloudPlayer

class · iOS 10.0+ · Deprecated in iOS 12.0

GKConnectionState

enum · iOS 10.0+

GKError

struct · iOS 4.0+

GKError.Code

enum · iOS 4.0+

GKFriendRequestComposeViewController

class · iOS 4.2+ · Deprecated in iOS 10.0

GKFriendRequestComposeViewControllerDelegate

protocol · iOS 4.2+ · Deprecated in iOS 10.0

GKFriendsAuthorizationStatus

enum · iOS 14.5+

GKGameActivity

class · iOS 26.0+

GKGameActivity.State

enum · iOS 26.0+

GKGameActivityDefinition

class · iOS 26.0+

GKGameActivityListener

protocol · iOS 26.0+

GKGameActivityPlayStyle

enum · iOS 26.0+

GKGameCenterControllerDelegate

protocol · iOS 6.0+ · Deprecated in iOS 26.0

GKGameCenterViewController

class · iOS 6.0+ · Deprecated in iOS 26.0

GKGameCenterViewControllerState

enum · iOS 6.0+

GKGameSession

class · iOS 10.0+ · Deprecated in iOS 12.0

GKGameSessionError

struct · iOS 10.0+ · Deprecated in iOS 12.0

GKGameSessionError.Code

enum · iOS 10.0+ · Deprecated in iOS 12.0

GKGameSessionEventListener

protocol · iOS 10.0+ · Deprecated in iOS 12.0

GKInvite

class · iOS 4.1+

GKInviteeResponse

typealias · iOS 6.0+ · Deprecated in iOS 17.0

GKInviteEventListener

protocol · iOS 7.0+

GKInviteRecipientResponse

enum · iOS 8.0+

GKLeaderboard

class · iOS 4.1+

GKLeaderboard.Entry

class · iOS 14.0+

GKLeaderboard.LeaderboardType

enum · iOS 14.0+

GKLeaderboard.PlayerScope

enum · iOS 4.0+

GKLeaderboard.TimeScope

enum · iOS 4.0+

GKLeaderboardScore

class · iOS 14.0+

GKLeaderboardSet

class · iOS 7.0+

GKLocalPlayer

class · iOS 4.1+

GKLocalPlayerListener

protocol · iOS 7.0+

GKMatch

class · iOS 4.1+

GKMatch.SendDataMode

enum · iOS 4.0+

GKMatchDelegate

protocol · iOS 4.0+

GKMatchedPlayers

class · iOS 17.2+

GKMatchmaker

class · iOS 4.1+

GKMatchmakerViewController

class · iOS 4.1+

GKMatchmakerViewControllerDelegate

protocol · iOS 4.0+

GKMatchmakingMode

enum · iOS 14.0+

GKMatchRequest

class · iOS 4.1+

GKMatchType

enum · iOS 6.0+

GKNotificationBanner

class · iOS 5.0+ · Deprecated in iOS 17.0

GKPlayer

class · iOS 4.1+

GKPlayer.PhotoSize

enum · iOS 5.0+

GKPlayerConnectionState

enum · iOS 4.0+

GKReleaseState

struct · iOS 18.4+

GKSavedGame

class · iOS 8.0+

GKSavedGameListener

protocol · iOS 8.0+

GKScore

class · iOS 4.1+ · Deprecated in iOS 14.0

GKScoreChallenge

class · iOS 6.0+ · Deprecated in iOS 26.0

GKTransportType

enum · iOS 10.0+

GKTurnBasedEventListener

protocol · iOS 7.0+

GKTurnBasedExchange

class · iOS 7.0+

GKTurnBasedExchangeReply

class · iOS 7.0+

GKTurnBasedExchangeStatus

enum · iOS 7.0+

GKTurnBasedMatch

class · iOS 5.0+

GKTurnBasedMatch.Outcome

enum · iOS 5.0+

GKTurnBasedMatch.Status

enum · iOS 5.0+

GKTurnBasedMatchmakerViewController

class · iOS 5.0+

GKTurnBasedMatchmakerViewControllerDelegate

protocol · iOS 5.0+

GKTurnBasedParticipant

class · iOS 5.0+

GKTurnBasedParticipant.Status

enum · iOS 5.0+

GKVoiceChat

class · iOS 4.1+ · Deprecated in iOS 18.0

GKVoiceChat.PlayerState

enum · iOS 4.1+ · Deprecated in iOS 18.0

Functions and constants

get · iOS 4.0+

GKErrorDomain

TypeScript
const GKErrorDomain: string
Swift declaration
let GKErrorDomain: String
get · iOS 7.0+

GKExchangeTimeoutDefault

TypeScript
GKExchangeTimeoutDefault.value: number
Swift declaration
var GKExchangeTimeoutDefault: TimeInterval
set · iOS 7.0+

GKExchangeTimeoutDefault

TypeScript
GKExchangeTimeoutDefault.value: number
Swift declaration
var GKExchangeTimeoutDefault: TimeInterval
get · iOS 7.0+

GKExchangeTimeoutNone

TypeScript
GKExchangeTimeoutNone.value: number
Swift declaration
var GKExchangeTimeoutNone: TimeInterval
set · iOS 7.0+

GKExchangeTimeoutNone

TypeScript
GKExchangeTimeoutNone.value: number
Swift declaration
var GKExchangeTimeoutNone: TimeInterval
get · iOS 10.0+ · Deprecated in iOS 12.0

GKGameSessionErrorDomain

TypeScript
const GKGameSessionErrorDomain: string
Swift declaration
let GKGameSessionErrorDomain: String
get · iOS 4.1+

GKPlayerAuthenticationDidChangeNotificationName

TypeScript
get GKPlayerAuthenticationDidChangeNotificationName(): _Foundation_NSNotification_Name
Swift declaration
static let GKPlayerAuthenticationDidChangeNotificationName: NSNotification.Name
get · iOS 4.0+

GKPlayerDidChangeNotificationName

TypeScript
get GKPlayerDidChangeNotificationName(): _Foundation_NSNotification_Name
Swift declaration
static let GKPlayerDidChangeNotificationName: NSNotification.Name
get · iOS 14.0+

GKPlayerIDNoLongerAvailable

TypeScript
const GKPlayerIDNoLongerAvailable: string
Swift declaration
let GKPlayerIDNoLongerAvailable: String
get · iOS 3.0+ · Deprecated in iOS 18.4

GKSessionErrorDomain

TypeScript
const GKSessionErrorDomain: string
Swift declaration
let GKSessionErrorDomain: String
get · iOS 6.0+

GKTurnTimeoutDefault

TypeScript
GKTurnTimeoutDefault.value: number
Swift declaration
var GKTurnTimeoutDefault: TimeInterval
set · iOS 6.0+

GKTurnTimeoutDefault

TypeScript
GKTurnTimeoutDefault.value: number
Swift declaration
var GKTurnTimeoutDefault: TimeInterval
get · iOS 6.0+

GKTurnTimeoutNone

TypeScript
GKTurnTimeoutNone.value: number
Swift declaration
var GKTurnTimeoutNone: TimeInterval
set · iOS 6.0+

GKTurnTimeoutNone

TypeScript
GKTurnTimeoutNone.value: number
Swift declaration
var GKTurnTimeoutNone: TimeInterval
get · iOS 3.0+ · Deprecated in iOS 18.4

GKVoiceChatServiceErrorDomain

TypeScript
const GKVoiceChatServiceErrorDomain: string
Swift declaration
let GKVoiceChatServiceErrorDomain: String

Skipped declarations

14 declarations were excluded from these bindings. Each reason comes from the generator or the iOS SDK compiler.

GKTurnBasedMatchmakerViewController.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKLeaderboard.init()

inherited init: cannot prove legal (class declares 2 custom initializers)

GKLeaderboard.Entry.init()

inherited init: clang: 'init' is unavailable

GKGameActivity.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKScore.init()

inherited init: cannot prove legal (class declares 3 custom initializers)

GKGameActivityDefinition.init()

inherited init: clang: 'init' is unavailable

GKGameCenterViewController.init()

inherited init: cannot prove legal (class declares 6 custom initializers)

GKMatchmakerViewController.init()

inherited init: cannot prove legal (class declares 2 custom initializers)

GKAchievement.init()

inherited init: cannot prove legal (class declares 3 custom initializers)

protocol implementation GKLocalPlayerListener

The iOS SDK compiler rejected this binding: invalid redeclaration of 'player(_:didRequestMatchWithPlayers:)'

protocol implementation GKGameActivityListener.player(_:wantsToPlay:)

synchronous protocol result requires an active JS-thread call; delegate invocations can escape it

protocol implementation GKMatchmakerViewControllerDelegate.matchmakerViewController(_:getMatchPropertiesForRecipient:)

synchronous protocol result requires an active JS-thread call; delegate invocations can escape it

protocol implementation GKMatchDelegate.match(_:shouldReinviteDisconnectedPlayer:)

synchronous protocol result requires an active JS-thread call; delegate invocations can escape it

protocol implementation GKMatchDelegate.match(_:shouldReinvitePlayer:)

synchronous protocol result requires an active JS-thread call; delegate invocations can escape it