はじめに
Androidアプリ開発において、Firebase AnalyticsのDebugViewはイベントのリアルタイム計測確認に非常に便利です。
ただし、実機・エミュレータ問わず「端末が DebugView に表示されない」ケースがよくあります。
そこで今回は、実際に遭遇したケースをもとに、DebugViewが表示されないときにチェックすべきポイントを簡単にまとめておきます。
問題の背景
-
adb shell setprop debug.firebase.analytics.app <applicationId>を実行してもDebugView上に端末が表示されない - ログ上はイベント送信されているように見えるが、コンソール上では確認できない
- ビルドは難読化などが有効な本番想定
→ 実機でもエミュレータでも発生する可能性あり。
対応方法
1. setprop の設定値を確認する
adb shell setprop debug.firebase.analytics.app jp.example.app
adb shell getprop debug.firebase.analytics.app
-
getpropの結果がapplicationIdと一致しているか確認 - 反映後はアプリを再起動する必要があります
adb shell am force-stop jp.example.app
adb shell monkey -p jp.example.app -c android.intent.category.LAUNCHER 1
2. イベントを送信する
DebugViewは「直近30分以内にデバッグモードでイベントを送信した端末」しか一覧に表示されません。
アプリ起動後に1件以上イベントを発火させましょう。
3. プロジェクト設定の確認
- Firebaseコンソール上で 該当アプリのプロジェクト を開いているか確認
- 別プロジェクトや別フレーバーと混在しているケースがよくあります
4. ネットワークの疎通確認
- Charlesなどのプロキシを有効にしている場合、Googleへの通信がブロックされていないか確認
- VPNや社内ネットワークによって送信が止まるケースもあり
5. debuggable や難読化設定の影響について
-
debuggable=falseでもDebugViewは利用可能 - 難読化(ProGuard/R8)による影響は基本的にありません
→ イベント名・パラメータ名は文字列として送信されるため問題なし
→ Firebase SDKはconsumer proguard rulesによって必要クラスが保持されます
6. それでも表示されない場合の最終手段
adb shell setprop debug.firebase.analytics.app .none.
adb uninstall jp.example.app
adb install app-release.apk
adb shell setprop debug.firebase.analytics.app jp.example.app
- 一度
.none.でリセットして再インストールすると改善するケースあり - エミュレータの場合は Google APIsイメージ を利用しているかも確認
Tips
- DebugViewは「表示されない」ことがよくあります。焦らず一つずつ潰すのが大事です
- 特に
setprop→ アプリ再起動 → イベント送信の3ステップは必須です - CharlesやVPNを経由しているときは、通信ブロックに要注意です
まとめ
- DebugViewは本番想定のビルドでも利用可能
- 端末が表示されないときは以下の順に確認するのがおすすめ
-
setpropの反映 - アプリの再起動
- イベント送信
- Firebaseプロジェクトの確認
- ネットワーク疎通
- リセット & 再インストール
-
おわりに
DebugViewはイベント計測の初期調査に非常に役立ちますが、表示されないときのハマりポイントも多いです。
この記事が誰かのデバッグ時間を少しでも短縮できれば幸いです!