ローカルプレーヤー認証が機能しているかどうかを検出しようとしていますが、常に肯定的な結果を得ているようです。トレース出力ゲームセンターのlocalPlayerは常に認証されています
//--------------------------------------------------------------
- (void)authenticateLocalPlayer
{
NSLog(@"Authenticating local player %@ (%d)", ([GKLocalPlayer localPlayer].authenticated? @"YES":@"NO"), [GKLocalPlayer localPlayer].authenticated);
if ([GKLocalPlayer localPlayer].authenticated == NO) {
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error) {
[self callDelegateOnMainThread:@selector(authenticationChanged:)
withArg:nil
error:error];
}];
}
}
//--------------------------------------------------------------
- (void)authenticationChanged:(NSError *)error {
if (error != nil) {
NSLog(@"Error authenticating local player: %@", [error localizedDescription]);
}
NSLog(@"Authentication changed %@ (%d)", ([GKLocalPlayer localPlayer].authenticated? @"YES":@"NO"), [GKLocalPlayer localPlayer].authenticated);
}
私はここしばらく、ネットワークから切断して、このコードをテストされています:
2010-12-13 13:20:59.799 LittleScreams[954:307] Authenticating local player NO (0)
2010-12-13 13:21:01.616 LittleScreams[954:307] Error authenticating local player: The Internet connection appears to be offline.
2010-12-13 13:21:01.621 LittleScreams[954:307] Authentication changed YES (1)
これは明らかに、接続がオフラインであることを見てここで
は、私が使用していたコードですまだプレイヤーを認証しています!何が起きているのか?私はデバイスとシミュレータで同じ結果を得ています。TIA
私は同様の問題があります。私はGame Centerの機能をテストしており、飛行モードで何が起こっているのかを見たいと思っていました。飛行モードに入る前にGame Centerにログインしていれば、アプリは(もちろん)プレイヤーを許可しませんが、[localPlayer isAuthenticated]を実行すると、Game CenterにログインしているプレーヤーIDでYESが表示されます。あなたの問題に対する解決策は見つかりましたか? – Structurer