Question

I'm trying to call the authentication method of game center, however no authentication screen comes up and the callback return with an error : "the requested operation has been canceled".

The code :

[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error)
     {
        NSDictionary *userInfo = nil;
        if (error == nil) {

            NSLog(@"Game Center successfully authenticated");
        }
        else {
            userInfo = [NSDictionary dictionaryWithObject:error forKey:@"NSError"];
        }
        [[NSNotificationCenter defaultCenter] postNotificationName:Notification
                                                            object:self
                                                          userInfo:userInfo];

    }];

Any idea what can cause this issue ?

Was it helpful?

Solution

In iOS 4.2 when a user cancels the login to Game Center, after 3 attempts that error is returned. You can resolve the error by logging in using the Game Center app, then try your app again, you should see the welcome back message from Game Center in your app

OTHER TIPS

You should do something like that after you have tested if game center is available on the specific device:

GKLocalPlayer *localplayer = [GKLocalPlayer localPlayer];
[localplayer authenticateWithCompletionHandler:^(NSError *error) {
    if (error) {
        //DISABLE GAME CENTER FEATURES / SINGLEPLAYER
    }
    else {
        //ENABLE GAME CENTER FEATURES / MULTIPLAYER
    }
}];
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top