엄코딩의 개발 일지

React Native로 android / ios 환경을 개발하면서 아무 생각 없이 pod install & pod update를 남발하고 있었다.

그러던중 최근에 xcode 12.0.1 ARC Semantic Issue Group 관련 이슈를 겪었다.

요약하자면 프로젝트에서 Weibo SDK를 사용하고 있는데 Weibo SDK 함수를 불러오지 못하는 문제였다.

하지만, 협업하고 있는 개발자분 작업환경에서는 잘 동작했다.... 그래서 clean-install, rm -rf ./node_modules, npm install, pod install, pod update를 한참동안이나 남발한 것 같다.

 

결국에는 이게 문제가 아니었음을 알게된건 한참동안의 삽질 후였다...

 

pod install

React Native를 시작하면서 ios 작업환경을 처음 겪게 되었고, xcode를 사용하게 되었다. ( 내 개발 인생에 ios는 없을 것만 같았다. )

그리고 개발을 하면서 Library를 사용하게되었고 자연스럽게 Podfile의 존재 이유를 알게되었다.

내가 쉽게 이해한 바로는 Podfile을 통해 Library를 사용할 수 있다. Podfile에 라이브러리 정보를 입력하고, 아래 명령어를 입력하면 해당 라이브러리를 다운로드 받게된다. 

pod install

 

pod install을 사용하면 이를 Podfile.lock에서 기록해두는데 이 부분에서 중요한점은 해당 파일에 열거된 lib들에 대해서는 지정된 버전만 다운로드 하게된다는 점 이다. ( 이 부분에 있어서 pod update와 차이가 난다. ) 

** 더 자세하게 알고 싶다면 COCOAPODS 공식 링크를 확인해보자.

 

그렇다면 Pod update는 어떻게 다를까?

 

pod update

pod update

 해당 명령어를 사용하게되면 Podfile.lock을 참조하지 않고 최신 버전으로 업데이트하게 된다. 즉, pod update 명령을 실행하면 모든 pod들 library version들을 최신 버전으로 업데이트를 하게 된다.

 

** 더 자세하게 알고 싶다면 COCOAPODS 공식 링크를 확인해보자.

 

결론

결국 삽질의 이유는 버전차이였다. 단순하게 package.json에 리스트된 것들이 전부일 줄 알았고, Podfile에 있는 것들만 install면 될 줄 알았다. 하지만 PodFile.lock의 중요성을 알게 되었고, 평소 협업시 PodFile.lock은 공유하지 않았다.

협업하시는 개발자분에게 PodFile.lock를 공유드렸고, 단번에 해결되었다... 

정말 단순한 문제로 발생한 반나절 삽질이었는데, 역시 삽질을 통해 배워서인지 뿌듯하고, 다시는 이런 삽질을 안할것만 같은 자신감이 든다.

 

'ReactNative > Bug fix' 카테고리의 다른 글

SDK location not found  (1) 2020.03.17