iOS で GameKit を使用したターンベースのゲームがあります。通常、Game Center での認証は機能します。私のゲームは機能し、一定期間、動きを前後に送ることができます。ただし、一定ではありませんが比較的頻繁に、Game Center でアクション (たとえば、新しいマッチを見つける) を実行しようとすると、次のエラーで失敗します。
エラー Domain=GKErrorDomain Code=6 「ローカル プレーヤーが認証されていないため、要求された操作を完了できませんでした。」UserInfo={NSLocalizedDescription=ローカル プレーヤーが認証されていないため、要求された操作を完了できませんでした。}
それでも、 GKLocalPlayer.localPlayer().authenticated = true は、エラーが発生する直前と直後の両方です。このエラーが発生した後、認証 viewController が表示されず、認証に依存する GameKit メソッドが機能しなくなります (元に戻りません)。次に、アプリをバックグラウンドに送信してからフォアグラウンドに戻すと、アクションを再試行してもエラーは返されません (新しいログインとパスワードの入力は必要ありません)。
この同様の観察によると:
GKLocalPlayer 認証が機能しないが、isAuthenticated が YES を返す (Game Center サンドボックス)
1.デバイスの日付が正しくない場合、Game Center は認証を完了できません。そのため、先に進み、現在の日付を確認してください。
- あなたはこれをしたかもしれません。I trust you - iOS シミュレーター >> コンテンツと設定をリセット"
シミュレーターではなくデバイスでこの問題が発生しており、#2を除外しています。誰かが#1で私を助けてくれますか?ここで私は世間知らずかもしれませんが、私の iPhone と iPad は正しい時刻と日付を持っています。チェックして設定する必要がある何かまたは他の場所はありますか?
では、これが問題でない場合、他に何が問題になる可能性がありますか? 私はiOS9を実行しています。