Al usar el authenticateHandler en iOS 6, el centro de juegos no presentará la vista de inicio de sesión si el usuario lo cancela. Me doy cuenta de que el centro de juegos bloqueará automáticamente una aplicación después de 3 intentos de cancelación, pero estoy hablando de solo 2 intentos. Si cancelan el inicio de sesión, tienen que abandonar la aplicación y regresar antes de que el centro de juegos presente el inicio de sesión incluso a través del comando authenticateHandler. ¿Alguna idea sobre cómo manejar este caso en iOS 6?iOS 6 Game Center authenticateHandler no puede iniciar sesión después de una cancelación
Funciona bien cuando se utiliza el método de authenticateWithCompletionHandler mayores:
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0
GKLocalPlayer.localPlayer.authenticateHandler = authenticateLocalPlayerCompleteExtended;
#else
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:authenticateLocalPlayerComplete];
#endif
La razón de que esto es importante para mi aplicación es que requiere el Centro de Juego para múltiples jugadores. La aplicación intenta autenticarse en el centro de juegos en el lanzamiento, pero si el usuario cancela no les pedimos que vuelvan a iniciarse para que no se les moleste. Lo que hacemos es mostrar un botón de inicio de sesión de Game Center si no están conectados cuando seleccionan varios jugadores. El botón de inicio de sesión obliga a iniciar sesión en el centro de juegos al llamar a authenticateWithCompletionHandler (y ahora configurando GKLocalPlayer.localPlayer.authenticateHandler nuevamente).
Parece que ya lo está haciendo, pero al llamar a [[GKLocalPlayer localPlayer] authenticateWithCompletionHandler: nil] hará que se llame de nuevo a authenticateHandler con un controlador de vista de autenticación. Este método está en desuso en iOS6. – Greg
Estoy usando la llamada depreciada para que funcione, pero estoy buscando la forma "correcta" de hacerlo sin usar llamadas en desuso. Intenté configurar el nuevo GKLocalPlayer.localPlayer.authenticateHandler en cero y luego volver a mi controlador para ver si eso funcionaría, y obtuve una excepción al intentar establecerlo en cero.No intenté configurarlo en un controlador diferente para ver si eso activaría un inicio de sesión (que me pareció realmente raro) –
He intentado cambiar el controlador a otro controlador, y eso tampoco desencadena una nueva apertura de diálogo de inicio de sesión . Publiqué en los foros de desarrolladores para ver si alguien tiene algún consejo, y volveré a publicar aquí si escucho algo. https://devforums.apple.com/message/744983 – Greg