GameKit not working with watchOS 9

Game Center seems to have stopped working with watchOS 9. I've received support emails from users who have upgraded and can no longer see their score. I have also confirmed on my own Watch.

I call this function in the ContentView using onAppear on my main view.

  public func authenticatePlayerWatch() {

    GKLocalPlayer.local.authenticateHandler = { error in
      if GKLocalPlayer.local.isAuthenticated {
        self.gameCenterEnabled = true
      } else {
        print(error?.localizedDescription ?? "Unknown error")
      }

      print(">>>> -- GKLocalPlayer.local.isAuthenticated = \(GKLocalPlayer.local.isAuthenticated)")

    }
  }

But GKLocalPlayer.local.isAuthenticated is always false. It used to work on Watch (though intermittently) but now doesn't work at all. The iOS implementation works fine.

Anyone else have this issue and perhaps found a way to make it work on watchOS?

Replies

Do you have a Feedback number? https://feedbackassistant.apple.com/

  • I have submitted feedback along with a sample project with code used to load leaderboards on the Watch. The Feedback number is: FB11645950

Add a Comment

Ah, not yet - let me put one together along with a sample project. Thanks!!

I am seeing the same exact problem that Johnno described, and it started happening again with watchOS 9. Same problem was happening before with various watchOS releases, but it was recently fixed at one point in watchOS 8 cycle. I'm seeing the same problem where the GKLocalPlayer.local.isAuthenticated is always false in my game, and every other game on the watch I have that has a leaderboard feature is reporting some error with Game Center now, and can't access leaderboards anymore.

I've had a few players ask when GameCenter will work again... has anyone managed to find a workaround get it working on watchOS?