📈
FirebaseコンソールのAnalytics Dashboardにログ情報が全く反映されない問題
概要
iOSアプリでFirebase Analyticsを導入した際、
FirebaseコンソールのAnalytics Dashboardにログ情報が全く反映されない問題にあたりました。
前提条件は以下の通りです。
- Firebase SDKはSPMでインストール
- Google-ServiceInfo.plistは問題なし
- DebugViewではタップやスクロールが検知できており問題なし
- アプリ内で
Analytics.logEvent(),Analytics.setUserProperty()などは未使用- Dashboardから見れる情報のみで十分だったため
解決方法
FirebaseApp.configure()の後に
Analytics.setAnalyticsCollectionEnabled(true)を明示的に呼ぶことで解決しました。
エントリポイント
class AppDelegate: NSObject, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
FirebaseApp.configure()
Analytics.setAnalyticsCollectionEnabled(true) // これを追加
return true
}
}
@main
struct AIFrameApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
...
}
アプリ内でAnalytics.logEvent(), Analytics.setUserProperty()などを使用していないと、
firebase-ios-sdk/FirebaseCore/Sources/FIRApp.mにある
configureCoreメソッド内でFIRAnalytics(Firebase Analyticsのトップレベルシングルトンクラス)が初期化されず、データが送信されなくなるのが原因のようでした。
参考リンク
Discussion