8

これが私の状況です:

1) ユーザーが初めて私のアプリケーションを開きます。私はすぐに authenticateLocalUser を呼び出して、Game Center にログインしようとしました。[ログイン]、[アカウントの作成]、および [キャンセル] ボタンを含むポップアップが正常に表示されます。

2) ユーザーは今すぐログインしたくないので、[キャンセル] をクリックします。(彼らが「キャンセル」をクリックしたのはこれで 3 回目ではなく、「ゲーム センターが無効になっています。有効にするには、ゲーム センター アプリからログインしてください」というメッセージが表示されません。) ユーザーは、通常どおりアプリを使用し続けることができます。

3) ユーザーは後で Game Center を使用したいので、私が提供したボタンをクリックして Game Center にログインします。私は再びauthenticateLocalUserを呼び出します。今回は、ポップアップは表示されません。実際には、次のコンソール ログ メッセージが表示される以外は何も起こりません。

2012-04-26 08:38:42.861 Clink[332:707] authenticateWithCompletionHandler: enter
2012-04-26 08:38:42.863 Clink[332:707] authenticateWithCompletionHandler: exit

4) 私は、authenticateLocalUser を再度呼び出すボタンをすぐに押すことと、そうする前にかなりの時間待機することの両方をテストしました。authenticateLocalUser を再度呼び出しても、何も表示されず、関数から次のエラーが発生します。

Error Domain=GKErrorDomain Code=7 "The requested operation could not be completed because local player is already authenticating."

そのため、ステップ 3 で authenticateLocalUser を呼び出したときに、Game Center に認証を求めていますが、ハングアップしており、要求に応答していません。次に、手順 4 で再試行すると、既に認証を試みているため、要求を処理できないことが示されます。しかし、ステップ 3 のリクエストからの応答を最大 10 分待ったのに、Game Center から応答がありません。

これは私の authenticateLocalUser 関数の内容です。私が思い出す限り、Apple のサンプル コードからダウンロードしたバージョンから変更していません。

- (void) authenticateLocalUser
{
    if([GKLocalPlayer localPlayer].authenticated == NO)
    {
        [[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error) 
        {
             [self callDelegateOnMainThread: @selector(processGameCenterAuth:) withArg: NULL error: error];
        }];
    }
}

他の誰かが以前にこの問題に遭遇したことがありますか、または何が起こっているのかについて何か考えがありますか? 私はしばらくこれを見てきましたが、何が起こっているのかよくわかりません。

前もって感謝します!!

4

2 に答える 2

-1

上記の問題 1 の場合があります。この状況で認証メソッド呼び出しを使用している場合、2 つの場所で問題が発生します。再構築

どちらの場合も、クリーンアップしてから再構築するだけです。

私も同じ問題に直面していますが、解決策があり、解決しました。

于 2012-12-08T09:27:12.747 に答える