IOS April 16, 2018

CocoaPods 똑똑하게 사용하기 (명령어, 사용 예시 소개)

Words count 3.3k Reading time 3 mins. Read count 0

Pod install

iOS 프로젝트에서 CocoaPods을 사용하지 않은 프로젝트를 보기 힘들정도로 대부분의 iOS 프로젝트가 CocoaPods를 사용한다.

프로젝트 다운받고 -> `Pod install` -> 앱 실행

너무나도 익숙한 Flow지만 막상 다른 명령어는 뭐가 있는지, Pod installPod update의 차이를 정확하게 이해하고 사용하고 있지 않다.

이번 기회에 CocoaPods 을 정확히 이해하고 사용해보자.

CocoaPods 명령어

Pod install

pod install

가장 많이 사용하는 명령어.
새로운 pod 을 다운로드, 설치하기 위해 사용한다.

다운로드 받을 pod을 결정하는 것은 Podfile.lock 또는 Podfile 이다.

  1. Podfile.lock 파일이 있다면, .lock 파일 내에 명시된 pod과 그 버전을 다운받는다.
  2. Podfile.lock 파일이 없다면, Podfile 에서 pod과 ~> 으로 명시된 버전을 다운받고 Podfile.lock에 버전을 명시한다

Podfile 에서 ~> 는 무엇을 의미할까?

~> 기호는 버전의 상한선(이보다 높을 수 없음) 을 의미한다. 버전은 메이저.마이너.패치로 구분한다.

  • ~> 0.1.2 버전 0.1.2 ~ 0.2 (0.2 이상 포함되지 않음)
  • ~> 0.1' 버전 0.1 (1.0 이상 포함하지 않음)

-> 말고도 다른 연산자도 있다

  • > 0.1 0.1보다 큰 모든 버전
  • >= 0.1 버전 0.1 이상
  • < 0.1 0.1보다 낮은 모든 버전
  • <= 0.1 버전 0.1 및 그 이하 버전

Podfile 에 명시된 pod를 다운받고 Podfile.lock 에 다운받은 버전을 명시한다.

Podfile.lock 은 왜 필요할까?
Podfile.lock에 설치된 pod의 버전을 명시함으로써, pod이 업데이트 되면서 기존 앱이 동작되지 않는 문제를 해결하기 위해 Podfile.lock 에 기존 pod의 버전을 lock함으로써, 다른사람이 프로젝트를 clone 받아 pod install 했을때 유효한 pod 버전을 다운받기 위함이다! 버전픽스!

Pod Update

Podfile.lock 파일이 있는 한, Pod install 명령어를 사용하면 .lock 파일에 명시된 pod 버전에서 벗어날 수 없다. 시간이 흘러 pod 이 업데이트 되고, 업데이트 된 기능을 내 프로젝트에 적용해야 할 때, 내 프로젝트가 갖고있는 pod 을 업데이트 할 때 Pod update 를 사용한다.

Pod update {팟 이름} 을 실행하면

  1. Podfile.lock에 있는 버전은 무시하고 CocoaPods 원격 레포지토리에 있는 Pod 의 최신 버전을 다운받는다. 단! Podfile 에서 ~>, >= 등으로 제한을 걸어두었다면, 이 버전 제한 내의 최신버전이 적용될 것이다
  2. Podfile.lock에 새로운 pod 버전을 명시한다

Pod update을 실행하면

Podfile 에 있는 모든 Pod들을 대상으로 update 과정을 거친다

Podfile.lock 의 버전관리 (git commit에 포함해야 하나?)

해야한다

뭔가 확장자가 .gitignore에 포함되어야 할 느낌이지만! Podfile.lock은 Pod 파일들의 버전을 픽스시켜주는 역할을 한다.
다른사람에게 프로젝트를 공유할 때, 동일한 라이브러리 환경을 제공하기 위해 필수로 필요하며, 따라서 Git 으로 함께 버전관리를 해야한다.

0%