네이티브 설정에 변경이 있을 때:
iOS와 Android 관련 네이티브 설정(android/build.gradle, MainActivity.java, AppDelegate.m 등)을 수정했다면, 네이티브 파일을 최신 상태로 재생성하는 것이 필요합니다.
네이티브 모듈이 추가되거나 업데이트된 경우, 그에 맞는 설정이 반영되지 않아 빌드 오류가 발생할 수 있습니다. 이럴 때 --clean 옵션을 사용하면 문제를 해결할 수 있습니다.
빌드 에러가 발생할 때:
네이티브 파일이 손상되거나 설정이 꼬여서 앱이 정상적으로 빌드되지 않을 때, 기존 설정을 완전히 초기화하고 새로 생성하는 것이 도움이 될 수 있습니다.
특히 의존성이나 빌드 설정의 불일치로 인해 문제가 발생하는 경우가 많습니다.
새로운 네이티브 모듈을 추가한 경우:
새로운 네이티브 모듈을 추가한 경우 네이티브 설정이 제대로 반영되지 않을 수 있습니다. 이럴 때 prebuild --clean을 사용하면 해당 모듈에 필요한 설정 파일을 모두 새로 만들기 때문에 오류를 방지할 수 있습니다.
언제 prebuild --clean을 사용하지 않아도 되나요?
작은 변경:
예를 들어, JavaScript/TypeScript 코드만 수정했거나, 단순한 UI 변경이나 설정 파일을 약간만 변경했을 때는 prebuild --clean 없이도 빌드를 진행할 수 있습니다.
이미 존재하는 iOS/Android 파일들이 변경된 사항과 관련이 없을 때, 다시 빌드할 필요가 없습니다.
잦은 클린 빌드의 부담:
--clean 옵션은 iOS 및 Android 폴더를 완전히 삭제하고 다시 생성하기 때문에 빌드 시간이 많이 소요될 수 있습니다.
자주 사용하면 프로젝트에서 빌드와 개발 시간이 길어질 수 있으며, 특정 설정이 매번 삭제되기 때문에 유지 관리가 어렵습니다.
대신 사용할 수 있는 방법
expo prebuild: 단순히 expo prebuild만 사용하면 기존 네이티브 파일을 그대로 유지하면서 필요한 부분만 업데이트합니다. 만약 설정을 완전히 초기화할 필요가 없다면, 이 방법으로 충분합니다.
빌드 캐시 클리어: 만약 빌드 관련 문제를 해결하고 싶다면 빌드 캐시를 삭제하는 방법도 있습니다.
Metro 서버를 실행할 때 캐시 삭제:
bash
코드 복사
expo start -c
iOS/Android 빌드 캐시 삭제:
bash
코드 복사
cd android && ./gradlew clean
cd ios && xcodebuild clean
어떤 경우에 적용할까요?
설정이 제대로 반영되지 않을 때: 만약 서비스 워커 코드나 네이티브 모듈이 추가된 후에도 빌드에 문제가 생긴다면, prebuild --clean을 한 번 실행해보는 것이 좋습니다.
기존 설정 유지 필요: 자주 --clean을 사용하기보다 필요한 상황에서만 사용하는 것이 좋습니다. 일반적으로 설정이 크게 변경되지 않는다면 expo prebuild만으로도 충분합니다.
요약하면, 무조건 prebuild --clean을 해야 하는 것은 아니지만, 네이티브 설정 변경이나 빌드 문제가 발생할 때 유용하게 사용할 수 있습니다. 필요에 따라 상황에 맞는 명령어를 선택해서 사용해 주세요. 문제가 계속된다면 언제든지 추가로 문의해 주세요.