Sto riscontrando alcuni problemi di Game Center che creano confusione.Problemi del Game Center: iTunes Connect? Profili di provisioning? Qualcos'altro?
mia app gira su iOS 6 e superiori solo, e ho usato il codice standard per l'autenticazione con il Game Center:
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *viewController,
NSError *error) {
// Respond to authentication (failure or success) here!
}
Con questo codice, l'applicazione è in esecuzione in modo bello e senza problema per settimane, per me stesso durante lo sviluppo e con ~ 10-15 beta tester in distribuzioni ad hoc.
Per la maggior parte di questo tempo e per la maggior parte degli utenti, l'app si comporta come previsto: se non si effettua l'accesso a Game Center quando l'app viene avviata o si accede a un account Game Center di produzione, l'app richiede all'utente (con il controller modale a tema Game Center) per accedere con un account Sandbox. Accedi al tuo account sandbox e tutto funziona correttamente.
Per alcuni utenti, tuttavia, qualcosa di molto strano ha iniziato a verificarsi.
Il codice authenticateHandler
si chiama, è error
nil
, ma [GKLocalPlayer localPlayer].authenticated
è NO
, e l'utente non è connesso a Game Center. Più importante, c'è no finestra di dialogo modale del Game Center per richiedere all'utente di accedere. L'app si avvia semplicemente, viene chiamato il codice authenticateHandler
, ma non avviene alcuna autenticazione. Penso che l'app funzionerebbe se l'app Game Center mi permettesse di accedere con il mio account sandbox, ma non lo fa: loggato o uscito dall'account Game Center di produzione, non esiste l'opzione di accesso sandbox.
Dal momento che questo accade solo a alcuni utenti, e ha cominciato accadere solo per il mio dispositivo di sviluppo, ho molto dubbio che si tratta di un problema con il mio codice, e sto indovinando è un po 'complessa interazione tra iTunes Connect, il provisioning profili, impostazioni e cronologia di Game Center sul dispositivo, ecc.
Game Center è abilitato nel nostro ID app e in iTunes Connect (e ID app per entrambe le corrispondenze).
Help!
Modifica
Il mio problema può essere simile a iOS Development: Strange problem with authenticating Game Center user. La soluzione proposta per quella domanda era di accedere manualmente nell'app Game Center. Sembra una soluzione ragionevole, ma devo accedere all'ambiente sandbox e non riesco a trovare un modo per ottenere un prompt di login di Game Center sandbox nell'app Game Center.
È possibile che questi utenti abbiano disattivato Game Center? Se annulli l'accesso a GC per 2-3 volte di seguito, il dispositivo ti chiede di disabilitarlo. Dopodiché puoi solo accedere manualmente, l'app non mostrerà più la finestra di dialogo di autenticazione GC. –
@MarkoNikolovski grazie per il suggerimento. Ho letto di questo comportamento (vedi la domanda collegata nella mia modifica) e ho il sospetto che potrebbe essere il mio problema. Non penso di aver cancellato il log-in ripetutamente, ma a prescindere, è possibile che questo sia il motivo per cui la mia finestra di autenticazione non viene visualizzata. Il mio problema però è: come accedere alla sandbox con l'app Game Center quando non offre "sandbox" nel campo segnaposto password? –
Si è scoperto che i problemi erano principalmente dovuti a un errore che ho commesso nel mio codice 'authenticateHandler', dove la mia logica non presentava correttamente' viewController' all'utente in modo che potessero accedere. Nella misura in cui c'erano ancora alcuni problemi di confusione circondando il controller di visualizzazione e "Game Center" disabilitato, la risposta di @ MarkoNikolovski è utile e corretta, quindi l'ho contrassegnata come risposta. –