Clarifying when Game Center activity events fire relative to authentication

Hello,

In our game we enforce an age gate before showing Game Center sign‑in. Only after the user passes the age gate do we call GKLocalPlayer.localPlayer.authenticateHandler.

The reason I’m asking is that we want to reliably detect if the game was launched from a Game Center activity in the Games app (iOS 26+). If the user prefers to enter via activities, we don’t want to miss that event during cold start.

Our current proposal is:

My questions are:

  • Does player:wantsToPlayGameActivity:completionHandler: ever fire before authentication, or only after the local player is authenticated?

  • If it only fires after authentication, is our “register early but gate processing” approach the correct way to ensure we don’t miss activity launches?

  • Is there any recommended pattern to distinguish “activity launch” vs. “normal launch” in this age‑gate scenario?

We want to respect Apple’s age gate requirements, but also ensure activity launches are not lost if the user prefers that entry point.

Sorry if this is a stupid question — I just want to be sure we’re following the right pattern.

Thanks for any clarification or best‑practice guidance!

Hello. Thanks for asking. Here are some recommendations to try ~

Don't register early. The correct flow is:

  1. Show age gate → authenticate → then register GKLocalPlayerListener
  2. Register the listener inside authenticateHandler's success callback
  3. Activity events will fire automatically if launched from Game Center
  4. Game Center queues activity launch info internally - you won't lose it

player:wantsToPlayGameActivity:completionHandler: only fires after authentication

  • Registering before authentication doesn't help and likely won't work
  • No separate mechanism needed to detect activity launches - the callback itself is the signal

For testing, verify by adding a 30+ second delay between launch and authentication to confirm activity context is preserved through a lengthy age gate session.

Clarifying when Game Center activity events fire relative to authentication
 
 
Q