2012-04-26 15 views
8

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 !!

+0

Per favore fatemi sapere se avete risolto questo problema. Sto affrontando lo stesso problema. Grazie. – DancOfDeth

+0

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

+0

Sto avendo lo stesso problema ... Ho pensato che fosse qualcosa che stavo facendo male. –

risposta

-1

Ci sono casi per il problema precedente 1. se si utilizza il metodo di autenticazione chiama due posti in questa situazione crea un problema 2. se si utilizza il metodo di autenticazione prima volta in classe A e dopo l'esecuzione, quindi modificare il loro posto in classe B senza pulita e ricostruire

in entrambi i casi solo e quindi rigenerare.

Sono anche affrontando lo stesso problema ma non ho la soluzione e risolto.

+1

Mi dispiace, non capisco la tua risposta. Puoi chiarire per favore? Qual è esattamente la tua soluzione? – WendiKidd

1

ho avuto lo stesso problema quando ho avuto un altro Game Center account autenticato. Succede quando accedi ad alcuni giochi con il tuo account normale e allo stesso tempo con quello di prova.

Basta ripristinare le impostazioni del dispositivo e non effettuare il login con il tuo account reale in altri giochi durante il test. Succede quando fai entrambi nello stesso momento. Ripristina le impostazioni del dispositivo, pulisci il progetto e dovrebbe essere ok. E usa solo gli account di prova di iTunes per testare il tuo gioco.

+0

appena perso un paio d'ore cercando di capire il motivo per cui il mio codice è stato non aver ... Proprio disconnesso dal GameCenter e funziona, grazie di Apple ... – Gregory

Problemi correlati