Возможно, это очень поздно, и больше никого не волнует, но способ справиться с этим - обработчик аутентификации в Game Center. В частности, если пользователь выберет «отмена», вы получите код GKErrorCancelled
:
- (void) authenticate {
GKLocalPlayer* localPlayer = [GKLocalPlayer localPlayer];
[localPlayer authenticateWithCompletionHandler: ^(NSError *error) {
if(error.code == GKErrorCancelled) {
//this is the case you're interested in
}
if(localPlayer.authenticated) {
//rock on
}
}];
}
Опять же, этот пост, вероятно, уже древняя история, но, надеюсь, это поможет в любом случае:)