nekoblog

nekoblog

ちょっとためになるブログ

Oculus Integration で Firebase Analytics と Crashlytics を設定する

はじめに

Oculus アプリで Firebase Analytics と Crashlytics を実装したので、備忘録としてまとめました。

Firebase とは

アプリを開発の際に、ユーザーベースを拡大、収益を高めるためのツールです。Firebaseを使えば、インフラ構築に手間取ることなくビジネスを収益化し、効率よくアプリを開発し、運用・管理することができるようになります。

サーバーレス開発プラットフォーム Firebase入門 amzn.to 3,029円 (2023年01月26日 19:39時点 詳しくはこちら) Amazon.co.jpで購入する

事前準備

実装

Firebaseをインストールする

  1. "UnityプロジェクトにFirebaseを追加する" の記事に記載されているステップ1〜4に従って実装します。
    ※ ステップ5はサンプルコードに含まれているため、必須ではありません。

    ステップ 1: Firebase プロジェクトを作成する
    ステップ 2: アプリを Firebase に登録する
    ステップ 3: Firebase 構成ファイルを追加する
    ステップ 4: Firebase Unity SDK を追加する

  2. ダウンロードした firebase_unity_sdkから、 dotnet4 / FirebaseAnalytics.unitypackageと dotnet4 / FirebaseCrashlytics.unitypackageをインポートします。
    Firebase Unity SDKこちら からもダウンロードできます。

  3. AndroidAuto-Resolver が有効でない場合、必ず有効に設定します。
    Assets > Play Serveces Resolver > Android Resolver -> Settings

  4. テンプレート google-services.jsonを独自のものに置き換えます。
    テンプレートは下記の場所に保存されているので上書きします。

プロジェクトコードを有効にする

Firebase Analytics と Crashlytics がプロジェクトに追加されたら、Oculusメニューからサンプルコードを有効にします: Oculus> Samples> Firebase> Enable Firebase Sample

'unsafe'を許可する

クラッシュを強制する的に発生させるために、Crashlyticsサンプルでは C#の unsafeキーワードを使用しています。これはデフォルトでは禁止されているのでunityで設定して動作できるようにする必要があります。unsafeキーワードは、プレーヤーの設定で有効にする事ができます。 : Edit > Project Settings... > Player > Android settings > Allow 'unsafe' code

ビルドして実行

この時点で、サンプルシーンを開いて、いくつかのイベントとクラッシュをトリガーできるはずです。レポートは、Firebaseコンソール で確認できます。
自分の作成したアプリへも、 StartCrashlytics.cs を使用するだけで簡単にクラッシュを解析する事ができます。

symbols.zip ファイルをFirebaseにアップロードする

Scripting Backend を IL2CPP に設定してビルドし、symbols.zip を作成して Firebase にアップロードするとより詳細なクラッシュ報告を確認することが出来ます。

Firebase CLI コマンドを実行して、生成した Crashlytics 互換のシンボル ファイルを Firebase サーバーにアップロードします。

firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS

FIREBASE_APP_ID: Firebase Android アプリ ID(パッケージ名ではありません)
Firebase Android アプリ ID の例: 1:567383003300:android:17104a2ced0c9b9b

Firebase アプリ ID を確認する方法

google-services.json の mobilesdk_app_id に記載されています。
Unity 内で直接 APK をビルドした場合: PATH/TO/SYMBOLS は、ビルドが完了したときにプロジェクトのルート ディレクトリに生成される、圧縮されたシンボル ファイルのパスです(例: myproject/myapp-1.0-v100.symbols.zip )。
最後に、強制的にテスト クラッシュを発生させて Crashlytics の設定を完了し、Firebase コンソールの Crashlytics ダッシュボードで最初のデータを確認します。

Android NDK クラッシュ レポートを取得する | Firebase Crashlytics