2013年03月04日

[iOS] GameCenter実装の流れと実機テストで動作しないときの対処

iOSアプリにGame Centerを導入しようとしてハマったので備忘メモ。

Game Center導入の流れを簡単にまとめると、

■Web管理画面での設定
・iTune Connectの該当アプリにおいて、「Manage Game Center」内の「Game Center」を Enabled にする

iTune Connectの該当アプリのトップ画面↓
スクリーンショット 2013-03-04 8.18.24.png

「Manage Game Center」を押した後の画面↓
スクリーンショット 2013-03-04 8.19.41.png

・iTune Connectの該当アプリにおいて、「Game Center」を有効にする
※既存アプリのバージョンアップのときは、「Add New Version」でGameCenter対応版を新しく登録する必要がある
※設定し忘れても、「View Details」から設定できる

View Detailsの画面のGame Centerを↓
スクリーンショット 2013-03-03 22.47.13.png
Enabledにする↓
スクリーンショット 2013-03-04 8.22.42.png

・iOS Provisioning Portalで、App IDs より、該当アプリのGame Center が Enabled になっていることを確認する

App IDsより、Game Center が Enabled になっていることを確認↓
スクリーンショット 2013-03-03 23.46.14.png

■Xcodeでの設定
・GameKit.frameworkをフレームワークに追加する
・info.plistの「Required device capabilities」に「gamekit」を追加する
・プログラム追加(iOS6以上とiOS6より下とで認証方法が違う)
 →iOS6以上: [self presentViewController:viewController animated:YES completion:nil];
 →それ以外: [localPlayer authenticateWithCompletionHandler:^(NSError *error)

●実機テスト
Game Centerが無効になっていると実機で何も動作しない ← メインはこれ

振り返ってみれば簡単なことなのですが、かなりハマりました。


==============================================
★参考サイト/資料と簡単コメント

正攻法でマニュアルを参照
 ↓
Game Centerプログラミングガイド:
https://developer.apple.com/jp/devcenter/ios/library/documentation/GameKit_Guide.pdf
 ↓
「リスト 3-1 認証ハンドラの設定」でGameCenterの認証画面を表示するのだけど、
この通り実装しても動作しなかった。
 ↓
× [self showAuthenticationDialogWhenReasonable: viewController];
○ [self presentViewController:viewController animated:YES completion:nil];
【参考】
iPhoneアプリをGameCenterのLeaderboard(ランキング)に対応させる方法:
http://golog.plus.vc/iphone/2867/


プログラミングガイドにもiOS6以上とそれ以外とで認証方法が違うことは記載されていたけど、
参考サイトの方がわかりやすかった
 ↓
Game CenterのiOS 6対応:
http://minnatomodachi.net/2012/10/30/ios6gamecenter/
 ↓iOSのバージョンで処理を分けるときは
float osVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
if (osVersion >= 6.0f) { } else { }


いざテストしようとしたら、Web管理画面で「Game Center」を有効にする必要があることを知る。
 ↓
このゲームは game center により認識されません:
http://d.hatena.ne.jp/ratatata/20120112/1326394199
Game Centerの実機テストができない。:
http://iphone-dev.doorblog.jp/archives/6392925.html


端末によって、Game Center の認証画面が表示されたり、Game Centerが無効となっていて何も起きないことがあった。
 ↓
アプリ「Game Center」からサインインした後、再度該当アプリを起動するとGame Centerが表示された
 ↓以前、このような画面が表示されて Game Center を無効にしたことがあったのが原因
Screenshot 2013.03.04 03.30.23.png


最後の実機確認が一番ハマりました。
Game Centerを無効にすることができて、
Game Centerにサインインすることで無効が解除されるなんて知りませんでした。

気づいてよかった。。。
posted by be-style at 09:05| Comment(0) | iOS
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]