FC2ブログ
    08 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 10

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【ハルシオンブログ】先週はまった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を最新にするためのコードがあります。

    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)

    tb 0 : cm 0