#ios GameServicesAuthStatusChangeResult yield different player id after upgrading to 2.7.3

1 messages · Page 1 of 1 (latest)

strong summit
#

we recently upgrade to 2.7.3
and we are seeing the
GameServicesAuthStatusChangeResult from void OnAuthStatusChange(GameServicesAuthStatusChangeResult result, Error error)
the result.LocalPlayer.Id is now start from "T:"
it used to be "G:" or "U:" before.
we found nothing from apple forum, so would like to try if we can get any info here, thanks

barren lagoon
#

Well, we started using teamPlayerId instead of older playerId as it got deprecated.

#

We need to do this as we backported certain features from V3 for 2.7.3 deployment (this includes both playerid and server credentials to use latest api)

#

Is this id you use locally or on your server? I have a workaround to fix your case, but note that the old ids are deprecated. so strongly suggest to update to latest.

#

However, in V3, we provide all the id's -> legacyId (the one that used to be there before 2.7.3) , gameScopeId - new player id, developerScopeId - team identifier scope id.

strong summit
#

ah, we use the result.LocalPlayer.Id as the service id to determine if register or login
how could we translate the id (on the server side maybe?) from T: to G: or U: ?

barren lagoon
#

unfortunately, there is no proper documentation for this. May be apple provide the migration later (pls share if you find any refs on this).

strong summit
#

all right, thx

barren lagoon
#

I will provide you the option to still get the playerId (old one) to move forward.

barren lagoon
#

in NPGameKitPlayerBinding.mm file

NPBINDING DONTSTRIP const char* NPPlayerGetId(void* playerPtr)
{
    /*GKPlayer*   player      = (__bridge GKPlayer*)playerPtr;
    if (@available(iOS 12.4, *)) {
        return NPCreateCStringCopyFromNSString(player.gamePlayerID);
    } else {
        // Fallback on earlier versions
        return NPPlayerGetLegacyId(playerPtr);
    }*/
    
    return NPPlayerGetLegacyId(playerPtr);
}