CocoaPods 기본 명령어 정리
Last updated
Last updated
프로젝트에서 처음 CocoaPods을 설정할 때 사용
Podfile
에서 의존성을 추가, 수정, 삭제한 후 실행
새로운 pod을 다운로드하고 Podfile.lock
에 버전을 기록
기존에 설치된 pod은 Podfile.lock
에 기록된 버전 그대로 설치
Podfile.lock
에 없는 새로운 pod은 Podfile
의 버전 조건에 맞춰 다운로드
특정 pod을 최신 버전으로 업데이트할 때 사용
Podfile.lock
을 무시하고 Podfile
의 버전 조건에 맞는 최신 버전 설치
모든 pod을 업데이트하려면 pod update
만 실행
특정 pod만 업데이트하려면 pod update {특정 pod}
실행
CocoaPods 관련 명령어(pod install
, pod update
)에서
bundle exec
을 사용하는 이유는 팀원 간 동일한 CocoaPods 버전을 보장하기 위함이다.
1. "bundle exec"을 붙였을 때와 안 붙였을 때의 핵심 차이
pod install
Podfile.lock 기반으로 로컬 CocoaPods로 설치
로컬에 설치된 CocoaPods 버전
✅ Podfile.lock 참고
❌ CocoaPods 버전 차이 가능
bundle exec pod install
Podfile.lock 기반으로 Gemfile.lock에 명시된 CocoaPods 버전으로 설치
Gemfile.lock의 CocoaPods 버전
✅ Podfile.lock 참고
✅ 동일한 버전 유지
pod update
최신 버전의 Pod을 설치하며 Podfile.lock 업데이트
로컬에 설치된 CocoaPods 버전
❌ Podfile.lock 무시
❌ CocoaPods 버전 차이 가능
bundle exec pod update
최신 버전의 Pod을 설치하며 Podfile.lock 업데이트
Gemfile.lock의 CocoaPods 버전
❌ Podfile.lock 무시
✅ 동일한 버전 유지
팀원 간 CocoaPods 버전을 맞추고 안정적인 환경을 유지하려면 bundle exec
을 붙여서 사용해야 한다.
pod install
과 pod update
는 로컬 CocoaPods 버전에 따라 다르게 동작할 가능성이 크다.
가장 안전한 방법은
pod을 설치할 때: bundle exec pod install
pod을 업데이트할 때: bundle exec pod update
Podfile.lock
에 기록된 버전보다 새로운 버전이 존재하는 pod을 확인
업데이트 가능한 pod 리스트를 출력
CocoaPods 저장소에 있는 podspec
파일을 최신 상태로 업데이트
특정 pod이 제대로 설치되지 않을 때 해결 방법으로 사용
명령어
기능
pod repo update
CocoaPods 저장소의 podspec 정보를 최신 상태로 업데이트
pod update
Podfile.lock
을 무시하고 지정된 pod을 최신 버전으로 업데이트
pod repo update
는 CocoaPods 저장소의 정보를 최신 상태로 유지하는 것이고, pod update
는 실제 프로젝트의 pod 버전을 최신으로 업데이트하는 차이가 있음.
CocoaPods 저장소는 로컬과 원격 두 곳에 존재함.
위치: ~/.cocoapods/repos
pod install
또는 pod update
실행 시, 로컬 저장소의 podspec 정보를 참고하여 pod을 설치
pod repo update
를 실행하면 로컬 저장소가 최신 원격 정보로 업데이트됨
모든 pod의 podspec 파일이 저장되어 있으며, 최신 버전이 릴리스될 때마다 업데이트됨
즉, pod install
과 pod update
는 로컬 저장소(~/.cocoapods/repos
)의 podspec을 참고하지만, 이 정보가 오래되었을 경우 pod repo update
로 최신 원격 저장소와 동기화해야 함.
podspec
(Pod Specification)은 CocoaPods에서 사용하는 설정 파일로, 특정 라이브러리(Pod)에 대한 메타데이터를 포함
pod의 이름, 버전, 소스 코드 저장소, 종속성 등을 정의함
.podspec
파일은 CocoaPods 저장소에 저장되며, pod install
또는 pod update
시 참조됨
spec.name
: pod 이름
spec.version
: pod 버전
spec.source
: pod의 소스 코드가 저장된 Git 저장소
spec.ios.deployment_target
: 최소 iOS 지원 버전
pod update
를 실행하면 CocoaPods은 podspec
파일을 참고하여 최신 버전을 찾음
podspec
에 정의된 source
에서 최신 태그를 확인하고, Podfile
의 버전 조건에 맞는 최신 버전으로 업데이트
pod repo update
를 실행하지 않으면, 로컬 저장소의 오래된 podspec
을 사용하여 최신 버전을 찾지 못할 수도 있음
Podfile.lock
은 설치된 pod의 버전 정보를 기록하여 유지하는 역할을 함
pod 버전 변경 시 CHECKSUM 값도 변경됨
CHECKSUM
은 Podfile.lock
의 유일성을 보증하는 해시값
Podfile.lock
이 변경되면 CHECKSUM 값도 변경됨
팀원 간 동일한 pod 버전을 유지하기 위해 Podfile.lock
을 반드시 공유해야 함
Podfile
수정 후 pod install
을 실행하여 의존성을 일관되게 유지
만약 버전 불일치 문제가 발생하면 다음 명령어로 해결 가능
이렇듯 CocoaPods
을 활용하여 안정적으로 iOS 프로젝트의 의존성 관리
공식 저장소: