そのため、記事とApple開発者ライブラリをしばらく読んでいますが、これを解決できません。
ゲーム メニューからアクセスできるように、自分のアプリ用に Game Center Leaderboard を作成したいと考えています。ただし、ゲームの作成に Sprite Kit を使用しているため、いくつかの問題が発生しています。
アプリを iTunes Connect に登録し、Game Center を有効にしました。Xcode 内の ID 情報は、iTunes Connect のものと一致します。
Game Center Leaderboard を開くボタンを作成しました。タップされると、次のように呼び出されます。
GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
if (leaderboardController != NULL)
{
leaderboardController.timeScope = GKLeaderboardTimeScopeAllTime;
leaderboardController.leaderboardDelegate = self;
GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init];
if (gameCenterController != nil)
{
gameCenterController.viewState = GKGameCenterViewControllerStateLeaderboards;
UIViewController *vc = self.view.window.rootViewController;
[vc presentViewController: gameCenterController animated: YES completion:nil];
}
}
プレイヤーがサインインしていないため、Game Center を利用できないというメッセージが表示されます。
Appleの認証方法を使用して試したことを修正するには:
- (void) authenticateLocalPlayer
{
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error){
if (viewController != nil)
{
//showAuthenticationDialogWhenReasonable: is an example method name.
[self showAuthenticationDialogWhenReasonable: viewController];
}
else if (localPlayer.isAuthenticated)
{
//authenticatedPlayer: is an example method name.
[self authenticatedPlayer: localPlayer];
}
else
{
[self disableGameCenter];
}
}];
}
認証メソッドで呼び出されるこれらのメソッドを定義するのに問題があります。
私の明確な質問: ローカル プレーヤーを認証するにはどうすればよいですか?