✅ 오늘 배운 것
어제의 상황에서 아직 멈춰있다. GPT에게 도움을 요청했을 때도 sentry 관련 패키지 에러, expo와 sentry의 호환성(?)문제, 캐시 삭제 등의 방법을 알려주었지만, 다 해 봤는데도 똑같은 오류가 났다.
깃허브 관련 이슈를 찾아보니 해당 이슈에서는 expo를 prebuild했을 때 나는 이슈에 초점을 두고 있는 것 같았다. 사람들의 조언에 따라 우선 expo-cli를 최신 버전으로 업데이트 해 주었다. 아직 되지 않는다.
다만 패키지 호환성보다도 expo prebuild 문제인 것은 거의 확실해진 것이, 'expo prebuild' 명령어만 실행해도 관련 에러가 난다. 즉 prebuild 이후의 과정에서 나는 문제는 아니었던 것 같다. 해당 글에서는 다른 해결방법들도 제시해 주고 있었다. 문제는 그 방법이 좀 많이 번거로워서... 저걸 따라해야 한다는 데서 엄두가 잘 안 났다.
MacOS 업데이트, XCode 지웠다 깔기, 컴퓨터 다시 켜기, expo-cli 업데이트 하기 등등.... 할 수 있는 것은 다 해보신 것 같았다. 생각해보니 만약 ios 관련이라면 xcode나 pods 관련 오류일 수도 있지 않을까? 싶어서 xcode 관련 파일까지는 한번 제거해봐야 할 것 같다. ios 폴더와 xcode 관련 캐시를 제거해주었다.
rm -rf ios
rm -rf ~/Library/Developer/Xcode/DerivedData
역시나 되지 않는다... 뭐가 문제인 것일까? 생각해보니 안드로이드 에뮬레이터에서는 이 문제가 일어나지 않았다. 그렇다면 ios 설정이 잘못되었거나, expo와 ios 사이의 설정 등의 문제일 수 있겠다. 질문을 바꿔 해 보니 GPT도 아까와는 다른 방법을 알려주었다.
관련해서는 ios 환경을 초기화하고, CocoaPods(Swift 언어에 대한 의존성 관리 툴으로 보인다) 설정을 초기화해 주었다.
rm -rf ~/Library/Developer/Xcode/DerivedData
cd ios
pod install
cd ..
그리고 'npx expo-doctor' 라는 명령어를 이용해서 현재 expo의 설정 상에서 문제가 없는지를 확인해보았다. 그랬더니 이처럼 패키지 간의 의존관계에 문제가 있다는 답변이 나왔다.
아래와 같은 명령어를 시도하니 다음과 같은 에러가 났다.
npx expo install --check
typescript를 설치해볼 것을 권장하기에 그렇다고 했는데, 다음과 같은 에러가 났다. 알고보니 typescript 관련해서도 다른 패키지와 의존성 충돌이 있는 모양이었다.
npm install typescript --save-dev
친절히 오류 메시지를 알려 주길래 따라해 보았다.
sudo chown -R 501:20 "/Users/soyoung/.npm"
'chown'은 'change owner'의 약자인 듯 했다. 즉 해당 디렉토리 안에 있는 모든 파일에 대한 소유 권한을 그룹 ID 20, 사용자 ID 501에 할당한다는 의미였다. .npm 디렉토리 안에는 아마도 관련 캐시나 설정 파일이 들어있을 것 같아서 소유권 변경이 필요한가? 싶어서 일단 명령어를 입력했는데, 문제는 입력해도 오류가 난다는 것이었다. 특정 버전의 라이브러리를 설치하려고 해도 의존성 충돌이 계속 발생했다.
npm install @typescript-eslint/eslint-plugin@5.30.5 @typescript-eslint/parser@5.30.5 --save-dev
그래서 결국 node_modules 파일과 package-lock.json 파일을 지우고 처음부터 시작해 보았다.
rm -rf node_modules package-lock.json
npm install
그런데 npm install 부분에서 또 막히는 게 아닌가.
이렇게 계속 막히다가, 결국에는 --legacy-peer-deps 옵션을 사용해보기로 했다. 이 옵션을 사용하면 패키지 간의 의존관계를 무시하고 일단 설치를 진행한다고 한다.
npm install --legacy-peer-deps
'개발 일기장 > SWM Onestep' 카테고리의 다른 글
20241110 TIL: React Native에서 UI Kitten dependency 최대한 제거하면서 디자인 붙이기 (1) | 2024.11.12 |
---|---|
20241102 TIL: 드디어 에뮬레이터 실행 관련 이슈 청산하고 애플로그인 마무리하기 [진행중] (2) | 2024.11.02 |
20241029 TIL: React Native로 ios 에뮬레이터에서 애플로그인 하기 [진행중] (3) | 2024.10.29 |
20241025 TIL: React Native로 ios 에뮬레이터에서 애플로그인 하기 [진행중] (0) | 2024.10.26 |
20241024 TIL: React Native로 ios 에뮬레이터에서 애플로그인 하기 [진행중] (0) | 2024.10.24 |