프로젝트 진행 중 master 와 브랜치를 병합하는 과정에서 빌드 오류가 발생했다.
~.modulemap' not found 라는 에러였는데, React Native 개발을 처음 접하기 시작했을때 비스무리한 경우를 겪었던 것이 떠올랐다.
당시에는 YogaKit 모듈맵을 찾지 못한다는 에러였는데, .xcodeproj 파일을 실행해서 생긴 문제였다.
해당 문제는 .xcworkspace 파일로 실행해서 해결했었는데, 이번 경우에는 이 방법이 통하지 않았다 ㅜㅜ
두 번째로 시도한 방법은, 모듈 재설치였다.
뭔가 모듈을 못찾는다는 에러가 발생하니 node_modules 혹은 podfile 에서 오는 문제라고 생각했고
프로젝트 디렉토리의 node_modules 폴더와 ios 폴더 내의 podfile.lock 파일을 삭제했다.
이후 차례로 npm install 명령어와 cd ios && pod install 명령어를 실행했지만, 이것도 역시 실패했다.
마지막으로 시도한 방법으로 해결하였는데, ios 빌드 버전을 맞춰주는 것이었다.
Podfile 을 열고
platform: ios, '' 부분의 버전을 이후 설명하는 다른 부분들과 동일하게 맞춰줘야 한다.
나같은 경우는 iOS 버전 11.0 으로 통일시켜주었다.
다음으로 .xcworkspace 파일을 열어 PROJECT -> Info 로 이동한다.
최상단의 Deployment Target 을 11.0 으로 맞춰주었다.
마지막으로는 TARGETS -> General 의 Deployment Info 에서 iOS 버전을 맞춰준다.
나는 여기서 iOS 버전이 10.0 으로 설정되어 있었다.
이 부분을 수정하라는 해결방법은 stackoverflow 나 github issue 에서도 찾아볼 수 없었는데,
내가 이것저것 살펴보다가 발견한 방법이었다.
그리고 추가적으로, 빌드 모드가 Debug 가 아닌 Release 모드로 되어있었다는 것도 발견할 수 있었다.
배포 과정에서 임시로 수정되었던 사항들이 master 에 반영되어 일어났던 현상이라고 생각한다.
버전 통일의 중요성을 다시 깨닫게 해준 경험이었으며,
앞으로 merge 하기 전에 항상 master 에서 pull 한 작업들을 조금 더 꼼꼼히 살펴보는 습관을 가져야겠다.
'ETC > React Native' 카테고리의 다른 글
[React Native] Linking / Deep Link (0) | 2021.08.07 |
---|---|
[React Native] Android Debug mode not working (0) | 2021.08.04 |