Meine App speichert, ob sie erfolgreich mit Game Center authentifiziert wurde. Wenn ein neues Spiel gestartet wird oder wenn der Benutzer die Punkteliste betrachtet, wenn ein lokaler Spieler nicht erfolgreich authentifiziert wurde und die App gerade nicht versucht, einen Benutzer zu authentifizieren, versucht es erneut .GKLocalPlayer Auth-Absturz auf iOS6 mit Modal Transition Error
(Warum? Falls Sie von einer No-Netzwerk Zone zu einer Netzwerkzone bewegt haben.)
Leider unter iOS6/XCode 4.5, es beginnt abstürzt. Oder zumindest scheint es unter bestimmten eingeschränkten Umständen zu sein: wenn ein Benutzer sich mit einem falschen Passwort und/oder einem Konto, das nicht existiert, nicht anmeldet. Bei einer erfolgreichen Anmeldung ist alles in Ordnung.
Danach erfolglose Login, wenn ich gehe und etwas zu tun, dass eine reauth Check verursacht auftreten bekomme ich diese:
2012-09-25 15: 54: 47,829 APP NAMEN [1493: 907] * Assertionsfehler in - [UIWindowController Übergang: fromViewController: toViewController: Ziel: didEndSelector:], /SourceCache/UIKit/UIKit-2372/UIWindowController.m:211
diese dann tatsächlich stürzt:
2012-09-25 15: 55: 25,569 APP NAME [1493: 907] * Beenden app aufgrund abgefangene Ausnahme 'NSInternalInconsistencyException', Grund: ‚Der Versuch, einen Übergang von modalen < GKModalRootViewController zu beginnen : 0x1cd8b2a0 > bis < GKHostedAuthenticateViewController: 0x1e31a350 > während ein Übergang ist bereits in Bearbeitung. Warten Sie viewDidAppear/viewDidDisappear der aktuelle Übergang zu wissen, abgeschlossen‘ * ersten Wurf Call-Stack: (0x394932a3 0x31db297f 0x3949315d 0x383fd2af 0x3640377b 0x36402fcf 0x394969c4 0x393edfeb 0x36521733 0x32a83d2d 0x3264b11f 0x3264a4b7 0x3264f1bd 0x39466f3b 0x393d9ebd 0x393d9d49 0x353132eb 0x3636b301 0x7e863 0x7e808) libC++ abi .dylib: terminate genannt werfen eine Ausnahme
Dies ist der lästige Code:
-(void)authenticateLocalUser {
if (!self.checkingLocalPlayer) {
self.checkingLocalPlayer = YES;
GKLocalPlayer *thisPlayer = [GKLocalPlayer localPlayer];
if (!thisPlayer.authenticated) {
[[GKLocalPlayer localPlayer]
authenticateWithCompletionHandler:^(NSError *error)
{
[self finishGameCenterAuthWithError:error];
}
];
}
}
}
ein y Idee, was ich hier falsch mache?
Das war in der Tat das Problem. Ich habe ein paar zusätzliche Kommentare in der Nähe als eine andere Antwort. –
Ja, danke für den Build auf dem ios 6 vs anderen. Ich glaube auch, dass presentModalViewController ist auch auf der Chop-Liste für iOS 6. –