[React-native] Command ValidateEmbeddedBinary failed with a nonzero exit code

HongDuHyeon·2023년 6월 5일
4
post-thumbnail
이전에 올렸던 게시글에서 해결한 줄 알았으나 에러가 재발생함에 따라 다시 일주일 삽질해서 정보를 수정합니다요...

자... 이전 블로그에서

아래 에러가 나면 맥을 밀어버리고 Rosseta를 사용하지 않고 RN 환경을 만드세요 !

- error
-- Command ValidateEmbeddedBinary failed with a nonzero exit code

라고 했던 바보멍충이가 바로 접니다.

근본적인 해결은 하지 못했고 너무 무식(?)하다면 무식한 방법이었던 것 같다.
그 끔찍한 맥북 초기화 후 RN 재설치라는게...

마음속으로 너무 힘들었다.

재택업무를 해야하는 상황에서 항상 빌드가 잘 되는지 불안감과 초조함에 시달려 재택 업무 전날 밤에 테스트를 해보고 잔다.
재택을 마음먹고 당연히 잘되고 잘고쳐졌던 xcode 저 에러가 다시 나왔다.
실제로 식은땀 났음

여튼 ! 굳게 마음을 먹고 책임감 있게 다시 천천히... 함께 알아봅시다...

도대체 어떻게...!

이 에러가 정확히 왜 어떻게 어디서 나오는지 아직도 그건 정말 모르겠다. 하지만? 해결을 해본 사람으로써 깃발을 들고 앞으로 나가보겠다.

먼저 앱이 있는 xcode를 켜고 Project Navigation에 앱을 클릭한다.

가운데 있는 탭들
General, Signing & Capabilities, Resource Tags, Info, build Settings, Build Phases, Build Rules

중에 우린 Build Phases에 들어가서 최상단 Target Dependencies에 있는 2가지 녀석들을 잠시 지워줄 것이다.

🚫 여기서 잠깐 🚫

지금 겪고 있는 Command ValidateEmbeddedBinary failed with a nonzero exit code 에러를
하단 탭에서 error only로 해서 자세히 보면

에러 메세지 옆에 에러 더보기가 있다. 그걸 눌러주면 어떤 실행파일에서 에러가 나왔는지 확실히 알 수 있다.

거기서 지레짐작이었지만 watch.app에서 나왔기 때문에
지금부턴 Target Dependencies에 있는 watchApp.app, widgetExtension.appex 파일을 Target Dependencies에서 지워줄 것이다.

어차피 다시 첨부할 수 있으니 걱정은 ㄴㄴ

그리고 한가지 더 지워줘야하는데 embed app extensions에 보면 target이 1개 있을 것이다. 그것도 지워주자

내 경우엔 widgetExtension.appex이 존재하고 있었다.

총 3가지를 먼저 삭제해주고 다시 build를 해보자. 그럼 indexing 하는 과정에서 좀 더 길어지고 사람을 불안하게 만든다.

여기서까지 난 안됐다.

하지만 ValidateEmbeddedBinary에러가 아닌 infoPlist 버전이 안맞는다와 비슷한 종류의 자주보던 에러가 나왔다.
충분히 rm -rf node_modules, clean build project, yarn react-native clean 등등 다 해보면 좋겠지만
맥북을 포맷을 하고도 사라지지 않았던 에러이기 때문에 좀 더 신성한 마음으로

rm -rf project를 진행하고 다시 clone을 받았다.

여기서 물론 아까 Target Dependencies로 돌아가서 dependencies가 제대로 있나 확인해보고 없다면 추가를 해줘야함 !!

git clone을 받고 indexing이 굉장히 길게 진행이 됐고 Signing & Capabilities에 check를 한 뒤
clean build project를 하고 build를 다시 진행해봤다.

거의 다 됐을 때....!

이번엔 다른 에러

error: index.js: ENOENT: no such file or directory, uv_cwd

이건 그냥 yarn start를 하려했는데 cache가 너무 많이 쌓여있으니 cache 좀 reset하고 하라는 그런 말이라고 찾았다.

yarn start --reset-cache

하고 다시 빌드를 하니...

성공 ㅠㅠㅠ

진짜 이 에러 하나로 4주를 삽질하면서 똑같은 장면도 많이 보고 굉장히 내심 힘들어했다.
위에 글을 쓴 것처럼 좀 내 멋대로 쓰긴 했지만서도 굉장히 좋은 경험이었고 슬슬 xcode에러가 크게 두렵지가 않다.
이번에 당한게 정말 세상 말도 안되는 왜 나는지도 모르겠는 에러였고... 많이 힘든만큼 많이 성장했으리라 믿는다.

내가 한 방법으로 안되는 사람도 있고 되는 사람도 있을텐데 정말 무운을 빕니다.

정말정말 23년도 제일 힘들었고 주변에 물어볼 사람도 없었지만 가장 기억에 남는 에러 한 줄일 것 같다.

그럼 이만 다들 얼른 코딩하려 가세요

profile
마음이 시키는 프론트엔드.. RN과 IOS를 곁들인..

2개의 댓글

comment-user-thumbnail
2023년 6월 7일

멋지네요

1개의 답글