私はいくつかの深刻な混乱を招くゲームセンターの問題を抱えています。
私のアプリはiOS6以降でのみ動作し、GameCenterでの認証に標準コードを使用しています。
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *viewController,
NSError *error) {
// Respond to authentication (failure or success) here!
}
このコードを使用すると、アプリは何週間も問題なく美しく実行されています。開発中は、アドホックディストリビューションで約10〜15のベータテスターを使用しています。
ほとんどの場合、ほとんどのユーザーにとって、アプリは期待どおりに動作します。アプリの起動時にGame Centerにログインしていない場合、または本番のGame Centerアカウントにログインしている場合、アプリはプロンプトを表示します(モーダルを使用)ゲームセンターをテーマにしたViewController)を使用して、サンドボックスアカウントでログインします。サンドボックスアカウントにログインすると、すべてが正常に機能します。
ただし、一部のユーザーにとっては、非常に奇妙なことが起こり始めています。
authenticateHandler
コードはと呼ばれ、はerror
ですnil
が、で[GKLocalPlayer localPlayer].authenticated
ありNO
、ユーザーはGameCenterにログインしていません。最も重要なのは、ユーザーにログインを促すモーダルゲームセンターダイアログがないauthenticateHandler
ことです。アプリが起動するだけで、コードが呼び出されますが、認証は行われません。Game Centerアプリでサンドボックスアカウントでのログインが許可されればアプリは機能すると思いますが、機能しません。本番ゲームセンターアカウントでログインまたはログアウトした場合、サンドボックスログインオプションはありません。
これは一部のユーザーにのみ発生し、開発デバイスでのみ発生し始めているため、コードの問題であるとは非常に疑わしく、iTunes Connect、プロビジョニングプロファイル、Game Centerの設定、およびデバイスの履歴など。
Game Centerは、アプリIDとiTunes Connect(および両方のアプリIDが一致)で有効になっています。
ヘルプ!
編集
私の問題はiOS開発に似ているかもしれません:GameCenterユーザーの認証に関する奇妙な問題。その質問に対して提案された解決策は、GameCenterアプリで手動でサインインすることでした。これは賢明な解決策のようですが、サンドボックス環境にログインする必要があり、ゲームセンターアプリでサンドボックスゲームセンターのログインプロンプトを表示する方法が見つかりません。