Отчет о достижениях GCAllegalArgumentException
Я реализовал GKAchievement в GKTurnBasedMatch, и он изначально работал. Теперь я получаю эту ошибку, сообщая о достижениях для другого игрока. Интересно, что тот же код вручает достижения местному игроку
Terminating app due to uncaught exception 'GKInvalidArgumentException', reason: 'A GKAchievement can only be submitted for another player when ending a turn-based match.'
Это код, который я использую для сообщения GKAchievement
GKAchievement *achievement = [[GKAchievement alloc] initWithIdentifier:identifier forPlayer:playerID];
if(achievement) {
achievement.percentComplete = percent;
achievement.showsCompletionBanner = YES;
[GKAchievement reportAchievements:@[achievement]
withCompletionHandler:^(NSError *error) {
if(error) {
NSLog(@"Unable to report achievement: %@", error);
}
completion(nil);
}];
}
И это код для завершения GKTurnBasedMatch
[self.gkMatch endMatchInTurnWithMatchData:archivedData
completionHandler:^(NSError *error) {
if(!error) {
NSLog(@"Awarding Achievement to %@", [self getWinner].log);
NSString *winnerPlayerId = [self getWinner].playerId;
[self awardAchievement:@"someAchievement" to:winnerPlayerId percentCompleted:100.0 completion:^(NSError *error1) {
completion(error1);
}];
} else {
NSLog(@"endMatchInTurnWithMatchData %@", error);
}
}];
Помоги мне в этом.
Благодарю.