2014年10月06日

iTunes 対応 (7) | ユーザー認証編問題解決編!新たなる旅立ち

さて、すっかり二日酔いも醒めたので、そろそろ Unity にくっ付いてる、Social API!
テストしてみましょうかね。
いや〜。へこんだなぁ〜。昨日は。

ユーザー認証のテストから

ちょっとこれまでの実装はおいといて、簡単にテストしてみましょう。
参考にさせてもらったのはこのページです。
いままで実装してた GameCenter クラスに追加しますね。4行目に using を追加して...
Screen Shot 2014-10-03 at 7.50.18 PM.png
実装をこんな感じでコピーして....
Screen Shot 2014-10-03 at 7.52.42 PM.png
ここのAuth() 関数を、これまで初期化で呼んでいたプラグインの代わりに呼んでみます。

ん〜。Unityのビルド問題なし!なんだ、普通に使えてるじゃん。
うれしいけど、これまで使った時間を考えると、ちょっとショック。

さて、iOSビルドも問題なく出来ちゃったんで、早速実行してみますね。
どうだっ?

ん。だめだね?
ん〜、でも、なんかコンソールにメッセージが。
Failed to authenticate local user The requested operation could not be completed because this application is not recognized by Game Center.

Failed to authenticate

ほ〜、まだ、なんかアプリ側の設定に問題があるみたいですね....


リサーチの末ついに!
なんか、さっきの問題に関してリサーチしてたんですが、たまに出る問題みたいですね。
どっちかというとコードとか設定じゃなくて、GameCenterの認証ステートの問題みたい。

なんか、みんなデバイスの設定を初期化すると直った!とか言ってるんですが...
でもちょっと試しに、デバイスの "設定" から、"GameCenter" に行って、サインアウトする所から始めてみますね。
(別にアプリの GameCenter から行っても一緒かな。)
さて、サインアウト後にXCodeで実行すると....
おぉ!!待ち望んだ画面が登場しました!!!

念のためテストで、サインインした状態で立ち上げると...
ちゃんと起動後に上からメッセージが降って来ましたね!
バッチリです!

なんだ、結構簡単にいけたんだなぁ〜。
これまでの苦労は徒労だったんだなぁ〜(遠い目)


ま、プラグインと Objective-C の知識と経験値が上がったという事で良しとしましょうか。
う〜ん。でも正直むなしいなぁ〜。



一応追跡調査
さて、一応 Social API を使えば実装可能なのは分かったので、もうちょっとだけネイティブプラグインでなんとか出来ないかトライしてみたんですが...

さて、まず問題としては、authenticateHandler の動きを勘違いしていて全然見当違いの事やってたんですよね以前。
引数の UIViewController が nil じゃ無いときに、サインイン画面をだす必要があったみたいです。ちゃんとレファレンスを読んでなかっただけなんだけど。
でそのためのコード、"presentViewController" とかも入れてみたんですが、
Warning: Attempt to present on whose view is not in the window hierarchy!
というエラーが出て来てしまいました。

で、またリサーチをすると、直すためには、コールのタイミングを変えないと駄目らしいんだけど、元々の Unity が作るコードに上書きされるんじゃなかろうか?とか、XCodeでストーリーボード作成してないから、どっから遷移するんだか?
とか、Unity側のプロセス、壊しちゃうんじゃない?とか、いろんな謎が満載。

XCodeだけでやってるとこの問題も簡単に解決出来るみたいなんだけどなぁ〜。

で、決断しました!
やり方はあるはずなんだけど、いろいろ理解しないといけない物が多過ぎるんで、
ひとまず、この "Social API" 使って先に進んじゃいますね。

ご・め・ん・ね

        にほんブログ村 ゲームブログ×PlayNCBlogへ
 初めてみました。よかったらクリックお願いね ♪

謝る時は、素直に謝る。そんな話なのかな?ちがう?
posted by やまけん at 09:46| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: