Netlify build 로 속썩은 바로 다음날 본격적으로 내업무좀 해보려는데 이번엔 AppCenter가 또 문제다. 나에게 AppCenter는 미지의 세계라 손대고싶지 않았으나 하필이면 내가 배포하는 날 이 사단이 나니 어쩌겠는가. 하다하다 안돼 사수에게 도움을 청했으나 자기도 모르겠다고 한다(바빠서 뻥치는거 다티남).
꾸역꾸역 로그를 읽어보니 처음엔 hermes-engine 버전이 안맞는다고 해서 hermes가 뭘 하나 보니 얜 그냥 앱 빌드 할 때 스피드에 관여하는 애란다. 로그를 더 위로 거슬러올라가보니 이번엔 cocoapods이 문제란다. pod은 인스톨만 해봤지 이걸로 뭘 해본적이 없어서 전혀 감도 안왔다. 에러메세지 긁어서 구글링부터 시작했다. 비슷한 사례들이 많았는데 내 프로젝트에서 쓰는 cocoapods 버전이랑 AppCenter에서 쓰는 버전이 달라서 문제가 생기는 경우가 있고 최신버전인 1.15는 문제가 많아서 일단 막아뒀단다. 왠지 AppCenter에서 앱을 빌드할 때 자동으로 깔리는 cocoapods 버전이 문제의 1.15 여서 문제를 일으키는 것 같단 슬픈 직감이 들었다.
문제가 어느정도 보이기 시작했으니 이제 키워드를 조금 바꿔서 구글링을 해야한다. 어떻게 AppCenter에 쓰이는 cocoapods 버전을 내꺼랑 같게 바꿀 수 있나? appcenter-post-clone.sh 라는 파일을 만들어 그 안에 cocoapods을 지우고 Podfile.lock에 있는 버전으로 깔라고 명시해줘야 한다. 여기까진 이해했음 98% 성공이나 마찬가지다. 근데 나는 이 파일을 프로젝트의 어디즈음에 위치시켜야 하는지 몰라서 삽질을 조금 더 했다. package.json이나 xcodeproj 와 같은 레벨에 두라는데 우리회사 프로젝트는 두 파일이 다른레벨에 있어서 두곳 다 넣어봤다. 상위 레벨에 있는 파일 먼저 돌려서 Podfile.lock이 안보인다는 오류가 떴다. 있는데 없다니 뭔소린가 이거 확인하는데 또 시간이 꽤걸렸다 (이건 내 이해력 문제인듯 싶다). 그래서 appcenter-post-clone.sh을 Podfile.lock과 같은 레벨에 두니 그제서야 정상적으로 돌아간다. 파일을 제대로 읽어서 Appcenter가 쓰는 버전의 cocoapods를 삭제하고 내가 주문한 cocoapods 버전을 설치해서 빌드가 문제없이 완료 되었다는 훈훈한 삽질 스토리였다.
교훈:
1. hermes-engine은 크게 하는게 없다. 근데 얘가 안깔린다는 Warning message가 뜨면 로그를 조금 더 읽어내려가 cocoapods 에 문제가 있는지 의심해 볼 것
2. cocoapods 버전을 바꿔주는 pre-build scripts는 Podfile.lock과 같은레벨에 둘것
3. configuration 공부하자
4. 어찌저찌 하다보면 결국 답은 나온다
'맨땅에 헤딩하기 > 개발공부' 카테고리의 다른 글
[삽질일기] netlify에서 빌드한 앱이 internal server error를 띄울 때 (0) | 2024.02.08 |
---|---|
[ESLint disable] 검열을 거두어주십쇼 (0) | 2023.12.27 |
[개발일기] Static HTML과 Implicit ARIA role (1) | 2023.10.07 |
[git] 문제의 시초를 잡는 조력자 git bisect (0) | 2023.08.13 |
[JavaScript] generator 와 yield 정리 (0) | 2022.04.15 |