Aquí está mi situación:centro de juego no responde a la solicitud authenticateWithCompletionHandler (IOS)
1) El usuario abre mi aplicación por primera vez. Inmediatamente llamo a authenticateLocalUser para tratar de iniciar sesión en Game Center. Aparecerá con éxito la ventana emergente con los botones Iniciar sesión, Crear cuenta y Cancelar.
2) El usuario no desea que entrar en este momento, así que haga clic en Cancelar. (Esta NO es la 3ª vez que hacen clic en "cancelar", y NO recibo el mensaje "Centro de juegos desactivado, inicie sesión en la aplicación de Game Center para habilitar"). El usuario puede continuar utilizando mi aplicación como siempre.
3) El usuario quiere usar Game Center más adelante, así que haga clic en un botón que les he dado a iniciar sesión en el Centro de Juego. Vuelvo a llamar a authenticateLocalUser. Esta vez, la ventana emergente NO aparece. De hecho no pasa nada, excepto que recibo estos mensajes de registro de la consola:
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) He probado tanto empujando inmediatamente el botón que llama a authenticateLocalUser de nuevo, y también de esperar un período de tiempo significativo antes de hacerlo. En cualquier punto que llamo authenticateLocalUser de nuevo, una vez más, no aparece nada, y me sale este error de la función:
Error Domain=GKErrorDomain Code=7 "The requested operation could not be completed because local player is already authenticating."
Así que lo que parece estar sucediendo es que, cuando llamo authenticateLocalUser en el paso 3, estoy pidiendo Juego Centro para autenticarse, pero se está colgando y no responde a mi solicitud. Luego, en el Paso 4, cuando vuelvo a intentarlo, me dice que no puede procesar mi solicitud porque ya está intentando autenticarse. Sin embargo, he esperado hasta 10 minutos para obtener una respuesta de mi pedido en el Paso 3, y nunca recibí uno del Centro de juegos.
Este es el contenido de mi función authenticateLocalUser. Por lo que recuerdo, no lo cambié de la versión que descargué del código de muestra de Apple.
- (void) authenticateLocalUser
{
if([GKLocalPlayer localPlayer].authenticated == NO)
{
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error)
{
[self callDelegateOnMainThread: @selector(processGameCenterAuth:) withArg: NULL error: error];
}];
}
}
¿Alguien más ha tenido este problema antes o tiene alguna idea sobre lo que podría estar pasando? He estado mirando esto por un tiempo y no estoy realmente seguro de lo que está sucediendo.
Gracias de antemano!
Háganme saber si se solucionó este problema. Estoy enfrentando el mismo problema. Gracias. – DancOfDeth
Newi, desafortunadamente no lo he hecho.Sin embargo, encontré un desarrollador de unidades que enfrenta el mismo problema. No estoy seguro de que haya una solución en este punto; ¿Es esta quizás intencionada (aunque muy extraña) conducta de Apple? – WendiKidd
Tengo el mismo problema ... Pensé que era algo que estaba haciendo mal. –