<!--
{
  "availability" : [
    "iOS: 7.0.0 - 26.0.0",
    "iPadOS: 7.0.0 - 26.0.0",
    "macCatalyst: 13.1.0 - 26.0.0",
    "macOS: 10.10.0 - 26.0.0",
    "tvOS: 9.0.0 - 26.0.0",
    "visionOS: 1.0.0 - 26.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "GameKit",
  "identifier" : "/documentation/GameKit/GKAchievement/report(_:withEligibleChallenges:withCompletionHandler:)",
  "metadataVersion" : "0.1.0",
  "role" : "Type Method",
  "symbol" : {
    "kind" : "Type Method",
    "modules" : [
      "GameKit"
    ],
    "preciseIdentifier" : "c:objc(cs)GKAchievement(cm)reportAchievements:withEligibleChallenges:withCompletionHandler:"
  },
  "title" : "report(_:withEligibleChallenges:withCompletionHandler:)"
}
-->

# report(_:withEligibleChallenges:withCompletionHandler:)

Reports the player’s progress on achievements and limits the challenges, associated with those achievements, that the player may complete.

```
class func report(_ achievements: [GKAchievement], withEligibleChallenges challenges: [GKChallenge], withCompletionHandler completionHandler: (@Sendable ((any Error)?) -> Void)? = nil)
```

## Parameters

`achievements`

The achievements that you’re reporting to Game Center.

`challenges`

The limited challenges associated with the achievements.

`completionHandler`

A block that GameKit calls when this method completes.

    The block receives the following parameter:

- `error`: Describes an error if it occurs, or `nil` if the operation completes.

## Discussion

Call this method to communicate to Game Center about the local player’s progress towards completing one or more achievements.

Game Center only updates the achievement’s [`percentComplete`](/documentation/GameKit/GKAchievement/percentComplete) and [`lastReportedDate`](/documentation/GameKit/GKAchievement/lastReportedDate) properties if the [`percentComplete`](/documentation/GameKit/GKAchievement/percentComplete) property of an achievement that you pass to this method is greater than the current value. If the achievement is hidden, Game Center also makes it visible. If the [`percentComplete`](/documentation/GameKit/GKAchievement/percentComplete) property is `100.0`, Game Center sets its [`isCompleted`](/documentation/GameKit/GKAchievement/isCompleted) property to <doc://com.apple.documentation/documentation/Swift/true> and may show a banner to the player.

For efficiency, include multiple achievements rather than invoking this method separately for each achievement. Since Game Center associates an achievement with the local player at the time you create the achievement, only invoke this method after you initialize the same player on the device.

---

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)