오늘 배운 것

어제의 상황에서 아직 멈춰있다. 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

 

+ Recent posts