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
- Lazy init:
AnalyticsServiceFirebase’irequire()ile lazy load eder - Loop fix: Recursive çağrı kaldırıldı,
isInitializingflag eklendi - Dynamic import:
PushNotificationServicestatik import’ları dynamicimport()yapıldı
Ders
Tüm native modül import’ları:
- Static değil dynamic/lazy olmalı
Config.IS_EXPO_GOile korunmalı- init fonksiyonlarında recursion riski kontrol edilmeli
Related
- firebase-native-module-kurali — lazy load patternleri
- native-deps-ota-crash — exact version pinleme