[ cocoapods ] pod install 과 pod update 차이점

 코코아팟스 (cocoapods) 

 

iPhone 개발을 하게되면 cocoapods 라이브러리를 잘 관리하는 것이 중요합니다. SPM (Swift Pacakge Manager)라는 공식 의존성 도구가 새로 나왔지만 아직까지는 cocoapods를 통해서 의존성 관리를 하는 것이 보편적입니다.

 

그중에 아주 기본적이라고 할 수 있는 install과 update에 대해서 알아보겠습니다. 사실 iOS 개발을 오래 한 사람들도 무의식적으로 pod install 과 pod update에 대한 차이를 모른채 그냥 사용하는 경우가 많을 겁니다.

 

개발 소스에 대한 관리는 잘하면서 pod의 버전에는 특별히 신경을 쓰지 않기 때문이죠. 만약 문제가 생긴다고 해도 잘돌아가는 버전으로 pod을 고정시켜서 사용하는 분들이 많을 겁니다.

 

일반적으로 iOS에서 가장 많이 쓰는 라이브러리를 꼽자면 다음과 같습니다.

 

  • Alamofire
  • Firebase
  • Facebook

 

그밖에도 많이 있겠지만 위와 같은 라이브러리는 많이 사용하는 만큼 버전업도 빈번하고 iOS 버전에 따라서 새로운 버전이 계속 출시될 겁니다. 따라서 주기적인 업데이트 없이 앱을 배포하다보면 반드시 문제가 생기게 됩니다.

 

Podfile.lock 파일

 

 

 공동작업의 위험성 

 

여기서 문제가 되는데 여럿이 작업할 때 보통 git에서 Podfile.lock 파일을 공유하지 않고 작업합니다. 이유인 즉 라이브러리가 꼬이고 소스 컴파일이 때에 따라 되지 않기 때문입니다. 그래서 보통 Podfile만 등록하고 Podfile.lock 파일의 경우 ignore를 해놓고 작업을 하게 됩니다.

 

이렇게 되면 장점도 있겠지만 cocoapods 패키지 매니저 버전에 따라서 사용자마다 다른 라이브러리를 import해서 사용할 가능성이 생기며 문제가 발생하게 됩니다. 때문에 가장 좋은 방법은 배포용 컴퓨터를 따로 만들고 라이브러리를 관리하는게 좋겠죠. 만약 그렇지 않다면 코코아팟스를 잘 활용하고 같이 작업하는 작업자에게 피해를 주지 않는 것이 좋습니다.

 

pod 사용법

 

 

 

 install, update, outdated 

 

pod install

우선 pod install의 경우 최초에 Podfile.lock을 생성합니다. pod update도 마찬가지 입니다. 하지만 그 다음에 pod install을 할 경우에 Podfile.lock을 기준으로 소스를 업데이트 합니다.

 

 pod update

만약 새로운 버전으로 라이브러리들을 업데이트하고자 한다면 pod update를 사용합니다. 그렇게 되면 기존의 Podfile.lock이 새로운 버전으로 업데이트가 되면서 라이브러리를 새로 로드하게 됩니다.

 

특정 라이브러리만 업데이트 하고 싶다면 다음과 같이 할 수도 있습니다.

pod update Alamofire

 

 pod outdated

그렇다면 새로 업데이트하기 전에 라이브러리의 목록을 확인하려면 어떻게 할까요? 다음과 같은 명령어로 확인이 가능합니다.

pod outdated

코코아팟스 pod outdated

 

댓글

Designed by JB FACTORY