【ハルシオンブログ】先週はまったUnity2020+Firebaseを入れてみたメモ。めんどくさいっす・・・IOSはさらにめんどくさいって噂も・・・
こんにちは。坂内です。
少し涼しくなってきた感じでしょうかね。
そろそろ飲みに行きたいです。はい。
先週ちょっとUnity2020+FirebaseのAndroidビルドを試そうとしたらどん詰まりしつつ、なんとか動くところまでもっていけたので、それについてちょっとメモを。
では順番にやっていきましょう。
①FirebaseにUnityのプロジェクトを登録します。
②Firebaseのプロジェクトのページから、「google-services.json」をダウンロードし、Assetsの直下に置きます。
]
③UnityにFirebaseのAPIを入れます。
ここで落とせるらしいです。
https://firebase.google.com/docs/analytics/unity/start?hl=ja
落としたファイルを解凍し、次のをインポートします。

インポートが終わると、こんなのがでました。

よくわからんから、Add Selected Registriesを押します。

こんなのもでたけど、これもよくわからないから Apply
この辺全部終わると、Plugins>AndroidフォルダにResolverが勝手にdllとかaarとかをたんまり用意してくれます。

さて、これでFirebaseが入ったので、ビルドをしましょう・・・・・
④コードを追加する
https://firebase.google.com/docs/unity/setup?hl=ja
ここに書いているように、SDKを最新にするためのコードがあります。
これをプロジェクトの初めに書くらしいです。
⑤④の後にイベントを投げるコードを書いてみます。
以下のコードをどこかに追加してみます。
起動時に使うと想定されているのかわかりませんが、Loginとイベントがはじめから用意されています。
これを使ってみましょう。
⑥ビルドをしてみます。
ビルド自体はちゃんと通るのですが、実行エラーが出てますね。

Failed to read Firebase options from the app's resources. Either make sure google-services.json is included in your build or specify options explicitly.
これね。
色々調べた結果、このページについた。
https://firebase.googleblog.com/2020/08/firebase-compatibility-with-unity-20201.html
なんかバグってるらしい?
とりあえず以下のことをすることで回避はできるらしい。
まずはmainTemplate.gradleとgradleTemplate.propertiesを使えるようにする。

ProjectSettingの2個のチェックをつける。
これをすることで、Assets>Plugins>Androidの中に各ファイルが作られます。

①mainTemplate.gradleのファイルに手を加える。
mainTemplate.gradleを開き、一番下にこれを加えます。
②gradleTemplate.propertiesのファイルに手を加える。
gradleTemplate.propertiesの一番したにこれを加えます。
さて、これで完了です。
ビルドをしてみましょう。
エラーがでますよね・・・・・
ここで大事なのが、Unity再起動!!!
これで完成です!
エラーがでないでイベントログまで投げれますね!!
すんごいはまりました。
それもUnity2020だと特殊なことをしないといけないとか・・・・
こんな感じでFirebase使えそうなので、素敵なFirebaseライフを!
(そのうちIOSの方でもまたはまりそうだけど・・・)
あ、何か間違えているとか、いい方法あったり、Firebase以外でいいのがあるなら教えてくださいね!
では、あでゅ~ノシ
少し涼しくなってきた感じでしょうかね。
そろそろ飲みに行きたいです。はい。
先週ちょっとUnity2020+FirebaseのAndroidビルドを試そうとしたらどん詰まりしつつ、なんとか動くところまでもっていけたので、それについてちょっとメモを。
では順番にやっていきましょう。
①FirebaseにUnityのプロジェクトを登録します。
②Firebaseのプロジェクトのページから、「google-services.json」をダウンロードし、Assetsの直下に置きます。

③UnityにFirebaseのAPIを入れます。
ここで落とせるらしいです。
https://firebase.google.com/docs/analytics/unity/start?hl=ja
落としたファイルを解凍し、次のをインポートします。

インポートが終わると、こんなのがでました。

よくわからんから、Add Selected Registriesを押します。

こんなのもでたけど、これもよくわからないから Apply
この辺全部終わると、Plugins>AndroidフォルダにResolverが勝手にdllとかaarとかをたんまり用意してくれます。

さて、これでFirebaseが入ったので、ビルドをしましょう・・・・・
④コードを追加する
https://firebase.google.com/docs/unity/setup?hl=ja
ここに書いているように、SDKを最新にするためのコードがあります。
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
var dependencyStatus = task.Result;
if (dependencyStatus == Firebase.DependencyStatus.Available) {
// Create and hold a reference to your FirebaseApp,
// where app is a Firebase.FirebaseApp property of your application class.
// app = Firebase.FirebaseApp.DefaultInstance;
// Set a flag here to indicate whether Firebase is ready to use by your app.
} else {
UnityEngine.Debug.LogError(System.String.Format(
"Could not resolve all Firebase dependencies: {0}", dependencyStatus));
// Firebase Unity SDK is not safe to use here.
}
});
これをプロジェクトの初めに書くらしいです。
⑤④の後にイベントを投げるコードを書いてみます。
以下のコードをどこかに追加してみます。
起動時に使うと想定されているのかわかりませんが、Loginとイベントがはじめから用意されています。
これを使ってみましょう。
Firebase.Analytics.FirebaseAnalytics.LogEvent(Firebase.Analytics.FirebaseAnalytics.EventLogin);
⑥ビルドをしてみます。
ビルド自体はちゃんと通るのですが、実行エラーが出てますね。

Failed to read Firebase options from the app's resources. Either make sure google-services.json is included in your build or specify options explicitly.
これね。
色々調べた結果、このページについた。
https://firebase.googleblog.com/2020/08/firebase-compatibility-with-unity-20201.html
なんかバグってるらしい?
とりあえず以下のことをすることで回避はできるらしい。
まずはmainTemplate.gradleとgradleTemplate.propertiesを使えるようにする。

ProjectSettingの2個のチェックをつける。
これをすることで、Assets>Plugins>Androidの中に各ファイルが作られます。

①mainTemplate.gradleのファイルに手を加える。
mainTemplate.gradleを開き、一番下にこれを加えます。
android {
sourceSets {
main {
def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
res.srcDirs += (unityProjectPath + '/Assets/Plugins/Android/Firebase/res/values/google-services.xml')
}
}
}
②gradleTemplate.propertiesのファイルに手を加える。
gradleTemplate.propertiesの一番したにこれを加えます。
android.useAndroidX = true
android.enableJetifier = true
さて、これで完了です。
ビルドをしてみましょう。
エラーがでますよね・・・・・
ここで大事なのが、Unity再起動!!!
これで完成です!
エラーがでないでイベントログまで投げれますね!!
すんごいはまりました。
それもUnity2020だと特殊なことをしないといけないとか・・・・
こんな感じでFirebase使えそうなので、素敵なFirebaseライフを!
(そのうちIOSの方でもまたはまりそうだけど・・・)
あ、何か間違えているとか、いい方法あったり、Firebase以外でいいのがあるなら教えてくださいね!
では、あでゅ~ノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】C# その年の第何週かを求めたいとき | 【ハルシオンブログ】Unity起動すると毎回IAPの更新が来るけど更新したくないしうざい時 »
コメント
| h o m e |