Proje: Okul B2B App · Hub: Okul B2B App — Incidents
Native Deps OTA Crash — Exact Version Pinleme
Commit: a691a76 (fix: native deps exact version pinlendi)
Semptom
OTA update sonrası cihazlarda crash. Bazı cihazlarda güncellenmiş JS bundle yüklenirken native modüllerle uyumsuzluk.
Root Cause
package.json’da native modüller ^ ile tanımlanmıştı:
"react-native-onesignal": "^5.2.13"^ sembolü OTA bundle yüklendiğinde farklı minor/patch versiyonlarını çözebilir. Native kod değişmediği halde JS kodu farklı native API beklediğinde crash olur.
Çözüm
Tüm native modüller exact version pinlendi:
"react-native-onesignal": "5.2.13" // ^ kaldırıldı
"react-native-reanimated": "~4.1.1" // ~ ile patch-onlyNative modül sayılan paketler: onesignal, react-native-firebase/*, reanimated, gesture-handler, screens, sortables, image-crop-picker vs.
Kural
OTA ile deploy edilen bir projede native modüller exact pin olmalı. OTA sadece JS bundle günceller, native kod güncellenmez.
Related
- build-ve-ota-update — OTA ve native bağımlılık ilişkisi
- firebase-native-module-kurali — native modül güvenli kullanımı