Game Center Challenges en iOS 10

He implementado funciones de Game Center como logros y tablas de sorting, y ahora estoy trabajando en los desafíos. Tenía la printing de que no tenía que agregar ningún código adicional; si tuviera logros o tablas de sorting, los jugadores podrían enviar desafíos a sus amigos. Pero ahora, en iOS10, ya no tienes la capacidad de agregar jugadores como amigos, los desafíos se manejan a través de iMessages. El problema es que no veo esa característica en ninguna parte de la pantalla GKViewController. Si seleccionas una puntuación de logro / tabla de letras, puedes tocar 'Desafiar a tus amigos', pero solo sugiere a los jugadores que ya tienes en tu list de amigos en lugar de en tu list de contactos. Apple también ha desaprobado GKChallengesViewController, así que no estoy seguro de dónde mirar cómo hacerlo.

¿Alguien sabe cómo agregar la function Retos de iMessage a Game Center en iOS 10?

Actualización: he visto que esta característica vive dentro del GKMatchmakerViewController, pero parece ser para cosas de tipo multijugador. Todavía no estoy seguro de cómo usar esto para enviar desafíos.

De los Apple Docs :

La emisión de un desafío no muestra una interfaz de usuario para el jugador que emite el desafío; este es el código que necesita para implementarse .

También hay algunos ejemplos sobre cómo emitir desafíos y cómo encontrar a los jugadores que puede invitar, tales como:

- (void) challengePlayersToCompleteAchievement: (GKAchievement*) achievement { [achievement selectChallengeablePlayers:[GKLocalPlayer localPlayer].friends withCompletionHandler:^(NSArray *challengeablePlayerI, NSError *error) { if (challengeablePlayers) { [self presentChallengeWithPreselectedPlayers: challengeablePlayers]; } }]; } 

…o:

 - (void) challengeLesserMortalsForScore: (int64_t) playerScore inLeaderboard: (NSString*) leaderboard { GKLeaderboard *query = [[GKLeaderboard alloc] init]; query.leaderboardIdentifier = leaderboard; query.playerScope = GKLeaderboardPlayerScopeFriendsOnly; query.range = NSMakeRange(1,100); [query loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error) { NSPnetworkingicate *filter = [NSPnetworkingicate pnetworkingicateWithFormat:@"value < %qi",playerScore]; NSArray *lesserScores = [scores filtenetworkingArrayUsingPnetworkingicate:filter]; [self presentChallengeWithPreselectedScores: lesserScores]; }]; } 

Por lo visto, todavía puedes invitar a jugadores que ya forman parte del centro de juego, es decir, que no haya "contactos" arbitrarios de la list de contactos (lo que tiene sentido), pero esto es solo una suposition.