Proje: Okul B2B App · Hub: Okul B2B App — Incidents

OTA Crash — AnalyticsService ve PushNotificationService Static Import

Commit’ler: fac7443, 388de08, b63f02f

Semptom

OTA update sonrası uygulama crash’i. AnalyticsService ve PushNotificationService init sırasında crash.

Root Cause 1: AnalyticsService Static Import

AnalyticsService.ts’de Firebase Analytics import ile statik olarak yükleniyordu. Expo Go’da (veya Firebase init tamamlanmadan) bu import crash’e neden oluyordu.

Root Cause 2: Recursive Init Loop

AnalyticsService.initialize() içinde kendi kendini çağıran recursive loop vardı.

Root Cause 3: PushNotificationService Static Import

PushNotificationService de OneSignal’ı statik import ile yüklüyordu. Expo Go’da ve OTA sonrası bazı durumlarda crash.

Çözümler

  1. Lazy init: AnalyticsService Firebase’i require() ile lazy load eder
  2. Loop fix: Recursive çağrı kaldırıldı, isInitializing flag eklendi
  3. Dynamic import: PushNotificationService statik import’ları dynamic import() yapıldı

Ders

Tüm native modül import’ları:

  • Static değil dynamic/lazy olmalı
  • Config.IS_EXPO_GO ile korunmalı
  • init fonksiyonlarında recursion riski kontrol edilmeli