티스토리 뷰

잘 안다고 생각했지만 일을 하다보니 의외로 머리 아프게 하는 두 가지가 깃이랑 코코아팟인 것 같다. 깃은 사실 여전히 모르는 것도 너무 많고 어려운거 인정하는데... 가끔 코코아팟 때문에 꼬이면 배신감이 세게 들더라. 그래서 그 배신감 좀 덜 느끼려고 공식 홈페이지 싹 훑고 왔다. 놀랍게도 양이 별로 안된다!

코코아팟을 최초로 설치하고 프로젝트에 적용하는건 많은 블로그 글들이 있어서 참고하면 좋을 것 같고, 나는 내가 일하면서 궁금했던 것, 필요하다고 생각한 부분만 추려보려고 한다.

CocoaPods 요약해서 알아보기

👉 CocoaPods : Xcode 프로젝트에서 사용하는 라이브러리들의 의존성을 관리해주는 도구

👉 Podfile : 의존관계가 정의 된 텍스트 파일

CocoaPods는 라이브러리들 간의 의존관계를 파악해서 필요한 소스 코드를 가져온 다음 프로젝트 필드를 위해 Xcode 워크스페이스에 필요한 것들을 연결하는 일을 한다. CocoaPods는 궁극적으로 중앙집권화 된 생태계를 만들어서 새로운 서드파티 오픈소스 라이브러리들을 찾기 쉽고 잘 활용할 수 있게 만들고자 한다.

pod install vs. pod update

개인적으로 하루 중 터미널 창에 pod install을 가장 많이 입력하는 것 같다. 아, 아니면 pod install --repo-update ㅋㅋ 큰 의미를 모르고 쳤던 것도 있고 언제 repo update를 요하는지도 몰라 이 단원(?)이 좀 도움이 많이 되었다. 앞으로 나올 글을 요약하면,

👉 pod install : 프로젝트에 새로운 pod를 설치/제거하고 싶을 때 사용

👉 pod update [pod이름] : 특정 pod만 새로운 버전으로 업데이트하고 싶을 때

pod install

pod install을 사용하는 경우는 두 가지. (1) 최초로 프로젝트에 pod들을 가져올 때 (2) Podfile에 pod을 추가/제거/업데이트를 할 때 사용하게 된다. pod install 명령어를 실행하면 [명령어 실행 > pod 다운로드 및 설치]를 진행하고 Podfile.lock에 각 pod의 설치된 버전을 명시해두고 잠궈버린다. CocoaPods 입장에서는 pod install 이 실행되면 Podfile.lock을 확인해보고 pod들 간 의존관계를 해결하는데 두가지를 본다.

👉 Podfile.lock에 pod 정보 없음 : 필요한 pod에 대해 Podfile에 적혀있는 버전 정보를 확인해서 가져온다

👉 Podfile.lock에 pod 정보 있음 : pod의 새로운 버전이 출시되었는지 확인하지 않고 Podfile.lock에 명시된 버전으로 가져온다.

pod update

pod update [pod이름]을 실행하면  Podile에 적혀있는 제약사항에 위배되지 않을 때  pod이름에 해당하는 pod의 업데이트 된 버전을 가져오고 Podfile.lock에 적힌 버전 정보를 업데이트 하게 된다. 만약 뒤에 pod이름을 쓰지 않으면 Podfile에 명시 된 모든 pod에 대해 최신 버전을 가져온다.

Private Pods

CocoaPods를 통해 오픈 소스 프로젝트 뿐만 아니라 개인적으로 만들어서 내 프로젝트 내에 넣어 활요할 수도 있다. 실제로 회사에서는 이렇게 많이 하지 않을까? (물론 우리도 이렇게 하고 있고) 이렇게 private pods를 활용하기 위해서는 (1) private 레포를 파야하고 (2) CocoaPods한테 어디서 이 프로젝트를 찾을 수 있는지 알려주고 (3) 레포의 podspecs에 추가해주면 된다. 어떻게 하는지 핸드온 세션은 다른 블로그에도 private pod 검색하면 많이 나오니까 내 글에서는 생략ㅎㅎ

Specs & Specs Repo

Podspec이라고도 불리고 Specs라고도 불리는데, 이는 Pod 라이브러리의 버전을 설명한다. 하나의 Pod은 버전이 업데이트 되면서 여러개의 Specs를 가질텐데 내부에는 위와 같은 내용이 들어가게 된다. podspec 작성을 마치면 깃헙에 사용 가능한 모든 pod의 목록이 담긴 Specs Repo에 올려야 하는데, 사용가능한 pod들이어야 하기 때문에 추가 과정이 꽤나 엄격하다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함