Wenn das authenticateHandler in iOS 6 verwendet wird, zeigt das Game Center die Anmeldeansicht nicht an, wenn der Benutzer es abbricht. Ich weiß, dass Game Center eine App nach 3 Cancel-Versuchen automatisch aussperrt, aber ich spreche von nur 2 Versuchen. Wenn sie den Login abbrechen, müssen sie die App verlassen und kommen zurück, bevor das Game Center den Login präsentiert, auch wenn der AuthenticateHandler wieder gesetzt wird. Irgendwelche Ideen, wie man mit diesem Fall in iOS 6 umgehen kann?iOS 6 Game Center authenticateHandler kann sich nach einem Abbruch nicht anmelden
Es funktioniert gut, wenn die ältere authenticateWithCompletionHandler Methode:
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0
GKLocalPlayer.localPlayer.authenticateHandler = authenticateLocalPlayerCompleteExtended;
#else
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:authenticateLocalPlayerComplete];
#endif
Der Grund für meine App wichtig ist, ist, dass es Game Center für Multi-Player erfordert. Die App versucht sich beim Start am Game Center zu authentifizieren, aber wenn der Benutzer abbricht, fragen wir sie beim Start nicht mehr, damit sie nicht gequält werden. Was wir tun, zeigt eine Game Center Login-Schaltfläche, wenn sie nicht eingeloggt sind, wenn sie Multiplayer auswählen. Der Login-Button erzwingt einen Login des Game Centers durch den Aufruf von authenticateWithCompletionHandler (und jetzt durch erneutes Setzen von GKLocalPlayer.localPlayer.authenticateHandler).
Es klingt, als würden Sie dies bereits tun, aber das Aufrufen von [[GKLocalPlayer localPlayer] authenticateWithCompletionHandler: nil] führt dazu, dass der authenticateHandler erneut mit einem Authentifizierungs-View-Controller aufgerufen wird. Diese Methode ist in iOS6 jedoch veraltet. – Greg
Ich benutze den abgeschriebenen Anruf, um dies zum Laufen zu bringen, aber ich suche nach dem "richtigen" Weg, dies zu tun, ohne veraltete Aufrufe zu verwenden. Ich habe versucht, den neuen GKLocalPlayer.localPlayer.authenticateHandler auf null und dann zurück zu meinem Handler zu setzen, um zu sehen, ob das funktionieren würde, und habe eine Ausnahme bekommen, die versucht, es auf Null zu setzen.Ich habe nicht versucht, es zu einem anderen Handler zu setzen, um zu sehen, ob das ein Login auslösen würde (das schien wirklich wirklich hacky) –
Ich habe versucht, den Handler zu einem anderen Handler zu schalten, und das löst auch keine neue Login-Dialogöffnung aus . Ich habe in den Entwicklerforen gepostet, um zu sehen, ob jemand einen Ratschlag hat, und werde hier zurück posten, wenn ich etwas höre. https://devforums.apple.com/message/744983 – Greg