---
title: GKAchievement
framework: gamekit
role: symbol
role_heading: Class
path: gamekit/gkachievement
---

# GKAchievement

An achievement you can award a player as they make progress toward and reach a goal in your game.

## Declaration

```swift
class GKAchievement
```

## Mentioned in

Rewarding players with achievements

## Overview

Overview Before using this class, configure your game achievements in App Store Connect. Then the dashboard shows the achievements initially locked and you can access them in your code. Use the loadAchievements(completionHandler:) method to load all the achievements that the local player is progressing toward. If an achievement doesn’t load, then it’s the first time you’re reporting the player’s progress toward it, and you must create a GKAchievement object to represent it. Next, set the percentage complete of the achievement using the percentComplete property. You can report the player’s progress for one or more achievements to Game Center using the report(_:withCompletionHandler:) method. The dashboard changes the appearance of the achievements to show the current percentages. If you set the percentage of an achievement to 100, the dashboard shows it as completed. To reset the player’s progress on all achievements, use the resetAchievements(completionHandler:) class method.

## Topics

### Loading and Initializing Achievements

- [loadAchievements(completionHandler:)](gamekit/gkachievement/loadachievements(completionhandler:).md)
- [init(identifier:)](gamekit/gkachievement/init(identifier:).md)
- [init(identifier:player:)](gamekit/gkachievement/init(identifier:player:).md)

### Accessing Achievement Properties

- [identifier](gamekit/gkachievement/identifier.md)
- [player](gamekit/gkachievement/player.md)
- [percentComplete](gamekit/gkachievement/percentcomplete.md)
- [isCompleted](gamekit/gkachievement/iscompleted.md)
- [lastReportedDate](gamekit/gkachievement/lastreporteddate.md)

### Reporting Progress on Achievements

- [report(_:withCompletionHandler:)](gamekit/gkachievement/report(_:withcompletionhandler:).md)
- [report(_:withEligibleChallenges:withCompletionHandler:)](gamekit/gkachievement/report(_:witheligiblechallenges:withcompletionhandler:).md)
- [showsCompletionBanner](gamekit/gkachievement/showscompletionbanner.md)
- [resetAchievements(completionHandler:)](gamekit/gkachievement/resetachievements(completionhandler:).md)

### Issuing Achievement Challenges

- [selectChallengeablePlayers(_:withCompletionHandler:)](gamekit/gkachievement/selectchallengeableplayers(_:withcompletionhandler:).md)
- [challengeComposeController(withMessage:players:completion:)](gamekit/gkachievement/challengecomposecontroller(withmessage:players:completion:).md)
- [GKChallengeComposeHandler](gamekit/gkchallengecomposehandler.md)
- [challengeComposeController(withMessage:players:completionHandler:)](gamekit/gkachievement/challengecomposecontroller(withmessage:players:completionhandler:).md)
- [challengeComposeController(withPlayers:message:completionHandler:)](gamekit/gkachievement/challengecomposecontroller(withplayers:message:completionhandler:).md)

### Deprecated

- [Deprecated Symbols](gamekit/gkachievement-deprecated-symbols.md)

### Initializers

- [init(coder:)](gamekit/gkachievement/init(coder:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Achievements

- [Rewarding players with achievements](gamekit/rewarding-players-with-achievements.md)
- [GKAchievementDescription](gamekit/gkachievementdescription.md)
