2013-03-25 19 views
6

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, è errornil, 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.

+0

È 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. –

+0

@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? –

+0

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. –

risposta

1

Ho appena provato sul mio dispositivo cosa succede se l'utente ha disabilitato Game Center: l'utente non può più accedere al controller di visualizzazione di login di Game Center dall'interno dell'app. È necessario pubblicare alcune istruzioni per l'utente per l'accesso manuale.

Sono anche andato al Game Center manualmente e ho effettuato l'accesso al mio account (il mio account normale con il mio normale account iTunes) e dopo essere tornato alla mia app sono stato autenticato di nuovo automaticamente senza un ulteriore prompt. Scommetto che se si dispone di un account e-mail/account separato per l'account GC sandbox, si otterrà di nuovo la finestra di dialogo di autenticazione.

TL; DR: inserire un testo istruttivo che l'utente dovrebbe eseguire se non è possibile ottenere la finestra di dialogo modale. Guarda il codice Apple nel GameKit programming guide (pagina PDF 36, elenco 3-1). È necessario eseguire questo codice nella parte else.

+0

Grazie per il collegamento all'elenco 3-1. Penso che in un ambiente di produzione, hai ragione, controllarlo e dire all'utente "vai all'app Game Center e accedi manualmente" funzionerebbe sicuramente. Abbastanza sicuro che alcuni che hanno riscontrato questo errore (incluso me stesso) * non * toccassero "annulla" sulla finestra di dialogo alcune volte. C'è un altro modo in cui Game Center può diventare disabilitato? Inoltre: qualche idea su come ottenere un prompt di login sandbox nell'app Game Center per superare il GC che è "disabilitato"? –

+0

TL; DR: Non riesco a testare la mia app perché non riesco a far sì che Game Center mi mostri un login sandbox per sovrascrivere GC in qualche modo "disabilitato", se questo è effettivamente ciò che sta accadendo. –

+0

Puoi accedere a Game Center, indipendentemente dal fatto che sia sandbox o no? Inoltre, stai facendo questo nel simulatore o su un dispositivo? –