Ecco la mia situazione:Game Center non risponde alla richiesta di authenticateWithCompletionHandler (iOS)
1) L'utente apre la mia domanda per la prima volta. Chiaro immediatamente authenticateLocalUser per provare a registrarli in Game Center. Viene visualizzato correttamente il popup con i pulsanti Login, Crea account e Annulla.
2) L'utente non desidera effettuare il login in questo momento, in modo da scegliere Annulla. (Questa NON è la terza volta che hanno cliccato su "annulla", e NON sto ricevendo il "Centro giochi disabilitato, accedi dall'app Game Center per abilitare" il messaggio.) L'utente può continuare a utilizzare la mia app normalmente.
3) l'utente vuole utilizzare Game Center più tardi, in modo da fare clic su un pulsante ho dato loro di accedere al Game Center. Chiaro di nuovo authenticateLocalUser. Questa volta, il popup NON appare. In realtà non succede nulla, se non che ricevo questi messaggi di log della console:
2012-04-26 08:38:42.861 Clink[332:707] authenticateWithCompletionHandler: enter
2012-04-26 08:38:42.863 Clink[332:707] authenticateWithCompletionHandler: exit
4) Ho testato sia immediatamente premendo il pulsante che chiama di nuovo authenticateLocalUser, e anche in attesa di un periodo di tempo significativo prima di farlo. A qualsiasi punto io chiamo authenticateLocalUser ancora una volta, ancora una volta non viene visualizzato nulla, e ottengo questo errore dalla funzione:
Error Domain=GKErrorDomain Code=7 "The requested operation could not be completed because local player is already authenticating."
Quindi, quello che sembra essere accadendo è che, quando chiamo authenticateLocalUser al punto 3, sto gioco chiedendo Centro per autenticarsi ma è bloccato e non risponde alla mia richiesta. Quindi, al punto 4, quando riprovo, mi dice che non è possibile elaborare la mia richiesta perché sta già tentando di autenticare. Tuttavia, ho aspettato fino a 10 minuti per una risposta dalla mia richiesta al passaggio 3 e non ne ho mai ricevuto uno dal Game Center.
Questo è il contenuto della mia funzione authenticateLocalUser. Per quanto ricordo, non l'ho cambiato dalla versione che ho scaricato dal codice di esempio di Apple.
- (void) authenticateLocalUser
{
if([GKLocalPlayer localPlayer].authenticated == NO)
{
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error)
{
[self callDelegateOnMainThread: @selector(processGameCenterAuth:) withArg: NULL error: error];
}];
}
}
Qualcun altro ha riscontrato questo problema prima o ha qualche idea su cosa potrebbe succedere? L'ho guardato per un po 'e non sono sicuro di cosa stia succedendo.
Grazie in anticipo !!
Per favore fatemi sapere se avete risolto questo problema. Sto affrontando lo stesso problema. Grazie. – DancOfDeth
Newi, sfortunatamente non l'ho fatto.Ho trovato uno sviluppatore di unità che affronta lo stesso problema, tuttavia. Non sono sicuro che anche a questo punto ci sia una soluzione; questo è forse il comportamento di Apple (anche se molto strano)? – WendiKidd
Sto avendo lo stesso problema ... Ho pensato che fosse qualcosa che stavo facendo male. –