Unity環境で、GooglePlayGameServiceの実行方法について質問させてください。m(_ _)m
現在の問題
公式チュートリアルで、「UnityでGooglePlayGameServiceを実行する」を実行しています。
しかし、Android実機で実行すると、下の認証のコードで落ちてしまいます。
呼び出されると落ちるコード
C#
1// 落ちるコード 2PlayGamesPlatform.Instance.Authenticate(SignInCallback, true); 3 4// コールバック関数も定義済み 5public void SignInCallback(bool success){}
手順は以下のように行いました
おそらく、証明書の問題だと思っていますが、問題点がわかりません。
[1] Unityの「Build Settings > Player Settings > Publish Settings」このページで、「Create a new keystoreボタン」を押し、Unity上でkeystoreとAliasの作成。
[2] この時点で、上のGooglePlayGameServiceの認証プログラムをコメントアウトすれば、Android実機で問題なく動きます。
[3] 「公式のGooglePlayConsole」にて、「アプリの追加、ゲームサービスの追加、リンク済みのアプリ」の設定。
[4] 「リンク済みのアプリ」のSHA1証明書の入力欄には、「Unity上で作成したKeyStoreのSHA1ハッシュ値」を下記のコマンドで調べて入力しています。
bash
1keytool -list -v -keystore keystoreのPAHT -alias エイリアス名 -storepass パスワード -keypass パスワード
[5]「GooglePlayConsole」にて、「リーダーボードの欄」で、Scoreというリーダーボードを作成し、「リソースの取得ボタン」からXMLを取得。
[6] 「5」で取得したXMLを、Unityの「Window > GooglePlayService > SetUp > Android setup」のページに行き、「Resources Definition」の欄に貼り付けて、「SetUp」ボタンを押して「Success」のアラートがでました。
[7] チュートリアルやその他のページではこれで認証ができると書いてあるのですが、自分の環境だとAndroid実機で実行した時のみ認証部分で落ちてしまいます。
関係があるかもしれないもの
・Unity上で証明書を作成すると、JKSキーストアで作成されるようで、「PKCS12に移行してください」とターミナルで出力されたので、PKCS12の証明書に変換をすると、Unity上で証明書が読み取れなくなってしまいました。
現在はJKSの方を使っています。
他に参考にしたサイト(すべて1からこれと同じように実行してみました)
・http://yasuaki-ohama.hatenablog.com/entry/2016/04/23/114809
・https://indie-du.com/entry/2017/02/13/070000
・https://answers.unity.com/questions/1372388/google-play-services-authentication-problem-failin.html
その他メモ
・「UnityのPublish settingのKeyStore」には、パスワードを入力してあります。
・「UnityのIdentification」には、「com.name.test」で登録してあります。
・「UnityのScripting Backend」には、「Mono」が指定されてます。
・「GooglePlayGameServiceのライブラリ」は、公式のものを使っています。
・Googleplayでベータ版としてリリースし、Androidで実行してみたのですが、その場合も落ちてしまいしました。
・「UnityのClientID」に、「GooglePlayConsole > リンク済みアプリの欄」にある、「000.aaaa.apps.googleusercontent.com」形式の値を入れても動きませんでした。
・「Unityのバージョン」は、2018.2.14fです。
・認証部分のコードを、Gistに書きました
チュートリアルと違う部分
・チュートリアルのこの欄の証明書の発行部分を、Unity上から「Create a new keystore」で証明書発行をしました。
下のコマンドで行うと、Unityビルドエラーになってしまったので、コマンドでなくUnityのGUIから行いました。
bash
1keytool -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999
質問内容
UnityからAndroidのGamePlayServiceの認証部分のエラー解決方法を教えていただけたら大変助かります。
また、現在作っているUnityゲームは、iOS版ではリリースできたのですが、Android版でGameServiceの問題でリリースできてない状態で、もし答えてもらえたら大変助かります。
あなたの回答
tips
プレビュー