Приглашение GKMatchRequest не отображается на другом устройстве

Благодаря обновлениям API GameKit в iOS 6 я наконец-то смог реализовать свою пошаговую настольную игру так, как она должна быть, с тайм-аутами ходов и улучшенным программным созданием матчей. Однако я сталкиваюсь с проблемой, которую не могу решить. Я хочу, чтобы Game Center работал полностью невидимым для конечного пользователя, чтобы все было программно и использовало мои собственные пользовательские интерфейсы. Поэтому для отображения совпадений я использую свое собственное представление таблицы, а не GKTurnBasedMatchmakerViewController по умолчанию. Прямо сейчас у меня нет проблем с отображением открытых совпадений с помощью метода -loadMatchesWithCompletionHandler :. Я также использую пользовательский экран для создания совпадения с прямым созданием для автоматического сопоставления (не проблема) и табличным представлением, которое загружает друзей Game Center из localPlayer для приглашения. Так как атрибут PlayersToInvite теперь может быть заполнен playerID, это возможно в iOS 6.

Моя главная проблема - обработка приглашения на стороне получателя. Я отправляю приглашение со следующим кодом

-(void)invitarAmigoMio:(NSArray*)losAmigos
{

    GKMatchRequest *request = [[GKMatchRequest alloc] init];
    request.minPlayers = 2;
    request.maxPlayers = 2;
    request.defaultNumberOfPlayers=2;
    request.playersToInvite = losAmigos;
    request.inviteMessage = @"Your Custom Invitation Message Here";



    request.inviteeResponseHandler = ^(NSString *playerID, GKInviteeResponse
                                       response)
    {

        if (response==GKInviteeResponseAccepted)
        {
            NSLog(@"INVITACION ACEPTADA");
        }
        else
        {
            NSLog(@"INVITACION RECHAZADA");

        }
    };

}

У меня есть делегат, который обрабатывает уведомления. Следующий код запускается при аутентификации пользователя

-(void)registroNotificaciones
{
    NSLog(@"registroNotificaciones");

    [GKMatchmaker sharedMatchmaker].inviteHandler = ^(GKInvite* acceptedInvite, NSArray *playersToInvite)
    {
        if(acceptedInvite != nil)
        {
            // Get a match for the invite we obtained...
            [[GKMatchmaker sharedMatchmaker] matchForInvite:acceptedInvite completionHandler:^(GKMatch *match, NSError *error)
             {
                 if(match != nil)
                 {
                     NSLog(@"match != nil: ");

                 }
                 else if(error != nil)
                 {
                     NSLog(@"ERROR: From matchForInvite: %@", [error description]);
                 }
                 else
                 {
                     NSLog(@"ERROR: Unexpected return from matchForInvite...");
                 }
             }];
        }
    };
    NSLog(@"FIN registroNotificaciones");

}

Почему уведомления не отправляются? Или уведомления не принимаются? Есть ли другой способ отправить уведомление, чтобы пригласить играть в игру? Я проверил, и мои учетные записи в песочнице Game Center разрешают приглашения, и я не знаю, что происходит

Ответы на вопрос(2)

Ваш ответ на вопрос