Abbiamo un problema con l'invio di inviti con GKGameCenterViewController
. Il controller della vista si apre bene, ma quando proviamo a inviare un invito a qualcuno, fallisce immediatamente. Entrambi gli account dispongono di inviti al centro giochi abilitati e la ricerca di altri giocatori tramite lo GKGameViewController
funziona correttamente. Ecco il codice che stiamo usando per gestire gli inviti:L'invito al Game Center ha esito negativo immediatamente
Questo metodo è chiamato non appena il GKLocalPlayer
viene autenticato (autenticazione viene chiamato da GameViewController
, questo codice è in una classe dirigente separata Game Center):
internal func authenticationChanged() {
if GKLocalPlayer.localPlayer().authenticated && !authenticated {
print("Authentication changed: player authenticated")
authenticated = true
GKLocalPlayer.localPlayer().unregisterAllListeners()
GKLocalPlayer.localPlayer().registerListener(self)
} else {
print("Authentication changed: player not authenticated")
authenticated = false
GKLocalPlayer.localPlayer().unregisterAllListeners()
}
}
E questo è il metodo che dovrebbe essere chiamato quando l'invito è ricevuto, sebbene non venga chiamato considerando che l'invito fallisce non appena viene inviato.
public func player(player: GKPlayer, didAcceptInvite inviteToAccept: GKInvite) {
//presentingViewController.dismissViewControllerAnimated(false, completion: nil)
print("Accepted invite")
let mmvc = GKMatchmakerViewController(invite: inviteToAccept)!
mmvc.matchmakerDelegate = self
presentingViewController.presentViewController(mmvc, animated: true, completion: nil)
}
Questi due pezzi di codice sono tutti nella stessa classe che sono conformi alle GKMatchmakerViewControllerDelegate, GKGameCenterControllerDelegate, GKMatchDelegate, GKLocalPlayerListener
delegati e protocolli.
Ho riscontrato lo stesso problema. Hai trovato una soluzione? – EmilyJ
Hai trovato una soluzione? –
No, mi dispiace. Abbiamo appena finito di lavorarci intorno. –