[SOLVED] Game Center on iOS 17 (possibly also 16) not working

We have a very straightforward game center implementation that uses the coronalabs plugin. We only use this to call the init function of the plugin and subsequently fetch the user’s name and ID upon a successful login.

This is working as expected on older iOS versions (I have managed to test up to iOS 15) but not on our iOS 17 devices. The error message returned is “local player has not been authenticated”.

I looked on the usual places and forums and there are no recent discussions around this error. Have already tried logging into game center with Sandbox accounts and other accounts as well but no luck. I have another two devices that run iOS 12 and 15 and this problem is not present on those devices.

If others who use game center can post here whether they are facing similar issues, I will continue to research solutions and tag the solar2D maintenance team as and when needed.

@vlads Tagging you in as I’ve tried all steps I could at my end to no avail so if you have any suggestions or clues as to what’s going, it might help

Things I’ve tried:

  • Instead of just testing development builds (which previously used to work fine for game center), I’ve uploaded a distribution build to test flight with all required entitlements and installed that on my iOS device but the error is still there.
  • The solar2d documentation is out of date on this and mentions enabling sandbox testing in for gamecenter in iphone settings but that option hasn’t been around for some time now. Sandbox testers can be added on AppStore Connect, though. I’ve added at least 3 separate accounts there and tested with those but no luck.

Is it possible that the init flow of the plugin is not compliant with any changes that Apple might have recently pushed?

UPDATE: Entitlement needs to be added into the build.settings as described in this post. Would appreciate if this could be added to the documentation for everyone’s benefit @vlads @Scott_Harrison

Will add this