環境
Unity2018.2.17f1
GooglePlayGamesPlugin-0.9.61
はじめに
GPGS(GooglePlayGamesServices)の機能でリーダーボード(ランキング)を実装しようと
いろいろと調べて作成しました。
主にこちらのブログを参考にして
https://indie-du.com/entry/2017/02/13/070000
認証つまずくも、試行錯誤の末できたはずが・・
apkを作成して、端末にインストール
Social.ShowLeaderboardUI();
でリーダーボードが表示された。
おお!
では、スコアを登録
Social.ReportScore(mScore, nLeaderboard[mPlayMode], (bool success) => {
// handle success or failure
isFinished = true;
if (!success){
isError = true;
}
});
できたようだ。
再び、スコアボードの表示を行うと、対象のボードを表示するとエラーが
Playゲームで問題が発生しました
のエラーが表示されてランキング表示されない。
スコアを登録するとこの現象が発生し、未登録の場合は
このゲームではまだハイスコアが公開されていません。
のメッセージ・・
調査した結果
Unityや、adb.exe 経由でinstallしたアプリだと、GPGSの動作に影響がでるようで意図した動作にならなかった。
logcat で確認したところ、それっぽい警告が出ていたのですが、保存してなかったのと
再現ができなくてちょっと確信がもてないけど・・
ストア経由で同じapkを入れたところ問題なく動作ができた。
エビデンスがちゃんと取れていないので、個人的な備忘録です。
追記
こちらで書かれている現象のようでした。
さらに追記
本番環境では、APIキーに制限がついていないと動作しないようです。
ある特定のタイミングから厳密になったのか、公開後しばらくは動作していたので問題無いと思っていました。
これが原因とは・・
APIに、Androidアプリのみの制限をつけて
パッケージ名と、SHA-1 署名証明書フィンガープリントを追加したことろ
リーダーボードと実績の表示、GPGSのサインインが動作しました。