피드로 돌아가기
Dev.toFrontend
원문 읽기
JS 번들과 Native Layer 간 동기화 불일치 해결을 통한 앱 빌드 안정화
How to Fix "Module Could Not Be Found" in React Native & Expo
AI 요약
Context
React Native 및 Expo 환경에서 JavaScript 번들은 Metro를 통해 Hot-reload가 가능하나, Native Layer의 Kotlin/Java 및 Swift/Objective-C 코드는 정적 컴파일 방식임. 신규 Native Module 설치 시 JS Bundle과 기존에 빌드된 App Binary 간의 버전 불일치로 인한 Invariant Violation 발생.
Technical Solution
- Native Module의 물리적 통합을 위한 App Binary 재컴파일 수행
- Custom Native Directory의 동기화 오류 해결을 위한 npx expo prebuild --clean 기반의 네이티브 프로젝트 재생성
- Metro Bundler의 오래된 Dependency Graph 제거를 위한 -c 플래그 기반의 Cache Clear 수행
- JS Bundle과 Native Layer의 상태를 일치시켜 TurboModuleRegistry의 모듈 탐색 실패 문제 해결
실천 포인트
1. Native Module 포함 라이브러리 설치 후 반드시 npx expo run:[ios/android]로 바이너리 재빌드
2. 네이티브 디렉토리 불일치 시 prebuild --clean 명령어로 환경 초기화 및 재구성
3. 빌드 후에도 동일 증상 발생 시 Metro 캐시 강제 삭제 후 서버 재시작