6

私はいくつかの深刻な混乱を招くゲームセンターの問題を抱えています。

私のアプリは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アプリで手動でサインインすることでした。これは賢明な解決策のようですが、サンドボックス環境にログインする必要があり、ゲームセンターアプリでサンドボックスゲームセンターのログインプロンプトを表示する方法が見つかりません。

4

1 に答える 1

1

ユーザーがGameCenterを無効にした場合にどうなるかをデバイスで試しました。ユーザーは、アプリ内からGameCenterログインビューコントローラーにアクセスできなくなりました。ユーザーが手動でログインするためのいくつかの指示を投稿する必要があります。

また、手動でGame Centerにアクセスし、自分のアカウント(通常のiTunesアカウントを持つ通常のアカウント)にログインしました。アプリに戻った後、追加のプロンプトなしで自動的に認証されました。サンドボックスGCアカウント用に別の電子メール/アカウントをお持ちの場合は、認証ダイアログが再度表示されることをお勧めします。

TL; DR:モーダルダイアログを取得できない場合にユーザーが行うべきことを説明するテキストを入力します。GameKitプログラミングガイド(PDFページ36、リスト3-1)でAppleのコードを見てください。パーツでこのコードを実行する必要がありますelse

于 2013-03-25T15:54:58.430 に答える