iOS/지식 공유

[CocoaPods] pod install 과 pod update 의 차이

언클린 2022. 8. 8. 14:33
728x90

iOS 개발자라면 다들 CocoaPods 을 사용해보셨을 거라고 생각합니다.

라이브러리 관리에서 주로 많이 사용하는데 하나의 절차 정도로만 생각하고 사용하는 경우가 많았는데

협업을 진행하면서 어느정도 활용법은 알아두는 것이 좋을 것 같아 글을 작성하게 되었습니다 ^^

이번 글의 중점적인 내용은 pod install 실행과 pod update 실행을 차이 입니다!

(전 처음에는 단순히 새로 프로젝트 시작할 때 install 그 이후 업데이트 시 update 로 알고 있었습니다... ;-;)


1. pod install

처음으로 알아볼 것은 pod install 입니다. 

다들 아시다시피 프로젝트 생성 후, pod 세팅을 진행 시 실행해주는 커멘드입니다.

 

해당 커멘드를 실행하면 최초 프로젝트 생성 시에 Podfile 에 작성해둔 각 pod 리스트를 설치하고, 설치된 각 pod 의 버전들을 Podfile.lock 파일에 기록합니다.

*Podfile.lock 역할은 기록된 pod 들의 버전들을 추적하여 유지시킨다고 합니다.

 

때문에, 이후에 pod install 을 실행한다면 Podfile.lock 에 설정된 버전들을 설치하게 됩니다.

해당 pod 들이 새로운 버전이 나와도 따로 업데이트되진 않고 기록된 버전으로 설치하게 되는 것입니다. 

 

그렇다면 Podfile.lock 리스트에 없는 pod 은 어떻게 될까? 

그 경우는 기존에 최초 생성 시 때처럼 Podfile 에 작성되어 있는 버전으로 설치가 진행됩니다.

 

2. pod update

다음으로 알아볼 것은 pod update 입니다.

 

pod update 같은 경우는 Podfile.lock 를 참조하지 않고, 설치된 모든 pod 을 최신으로 업데이트를 시켜줍니다.

때문에, 아마 실행해보신 분들은 pod update 가 완료되고 Podfile.lock 리스트가 갱신되는 것을 아실 수 있습니다.

 

3. 종속성

pod install 이나 pod update 실행하다 보면 아래와 같은 오류가 출력될 때가 있습니다.

CocoaPods could not find compatible versions for pod "[Pod명]"

{생략}

None of your spec sources contain a spec satisfying the dependencies: '[Pod명]'

{생략}

You have either:
 * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
 * mistyped the name or version.
 * not added the source repo that hosts the Podspec to your Podfile.

해당 내용은 Pod 실행을 위한 종속성이 충족되지 못할 때 발생하는 에러입니다.

이런 경우에는 에러 메시지에도 나왔듯이 pod repo update 혹은 pod install --repo-update 실행 시 해결됩니다 (^^)/

 

 

마무리

혼자서 개발을 하다 보면 상황에 맞게 자신이 정해서 개발을 진행하는 경우가 많은데 협업을 하다보면 그 해당 프로젝트만의 룰이 있기 때문에 룰을 지켜가면서 개발에 임하는 것도 고려를 해야 합니다.

그렇기 때문에 완벽히는 아니더라고 어떠한 상황이 주어졌을 때 올바른 처리를 할 수 있도록 간단한 지식은 알아두는 것이 좋을 것 같습니다!

많은 도움이 되었으면 좋겠습니다! (_ _)


 

 

 

 

728x90