Get Up & Code, MacKin Talk

iOS 의존성 관리도구 CocoaPods 코코아팟 사용하기 본문

IOS/Swift

iOS 의존성 관리도구 CocoaPods 코코아팟 사용하기

맥킨 2022. 1. 9. 22:05

 

CocoaPods => Swift 및 Objective-C Cocoa 프로젝트 종속성 관리자

 

타 의존성 관리도구로 카르타고나 spm(swift package manager)이 있다.

이 중 spm은 Apple에서 지원해주는 First Party에 해당한다. 하지만 아직은 SPM을 지원하지 않는 많은 라이브러리들이 있기 때문에 SPM이 아닌 cocoapods도 필요하다고 판단이 되어 도입하였다.

 

하단 페이지에도 설명되어 있지만, 설치 방법은 간단하다.

sudo gem install cocoapods
 

터미널 창을 열고, cocoapods 설치를 위한 명령어를 실행하면 된다.

대표사진 삭제

사진 설명을 입력하세요.

Password를 입력하고 나면 위와 같은

~ 1 gem installed로 끝나게 되고,

cocoapods이 설치된 것을 확인할 수 있다.

 

https://cocoapods.org/

CocoaPods.org

The Dependency Manager for iOS & Mac projects.

cocoapods.org

그렇다면 이제 프로젝트에 직접 cocoapod을 활용해 외부 라이브러리들을 함께 사용하면 된다.

 

먼저 제작하려는 프로젝트를 포함한 디렉토리로 이동하고, 하단 명령어를 입력하자.

프로젝트 내부에 cocoa pod을 초기화한다. 정도로 생각할 수 있을 것 같다.

pod init
 

명령어를 실행하고 나면 다음과 같이 Podfile이 생성된 것을 확인할 수 있다.

대표사진 삭제

사진 설명을 입력하세요.

Podfile 내부에 사용하고자 하는 라이브러리를 기재하고, 설치를 진행해야한다.

 

상단 사진의 경우, PageControl을 위한 라이브러리인 'CHIPageControl' 포함 총 4개를 추가해줬다.

 

어떤 오픈소스를 추가할 지는 목적에 따라 다양할 것 같다.

대표적인 라이브러리로는 네트워크나 이미지 캐싱을 위한 라이브러리들이 많이 추가된다.



상단에 기재한 cocoapods 홈페이지에서 원하는 라이브러리 검색도 충분함

 

사용할 라이브러리를 Pod file 내부에 입력한 이후엔

pod install
 

명령어를 통해 실제 해당 라이브러리들을 프로젝트에 추가할 수 있다.

 

이제는 프로젝트를 실행하기 위해 xcodeproj가 아닌 xcworkspace를 사용해야 한다.

 

오픈소스 라이브러리에 의존하게 되면 왜 xcworkspace를 사용해야할까?

코코아팟을 사용했을 때, xcodeproj가 아닌 xcworkspace를 사용하는 이유를 stackoverflow에서 찾아볼 수 있었다.

Projects contain files (code/resouces), settings, and targets that build products from those files and settings. Workspaces contain projects which can reference each other.

위 질문 글에 대한 답변을 살펴보면 xcodeproj와 xcworkspace는 범위가 다르다는 것을 확인할 수 있다.