CocoaPods 설치하기


Cocoa 또는 Cocoa Touch 환경에서 개발을 할 때 외부 라이브러리 사용을 쉽게 도와주는 패키지 관리 도구는 여러가지가 있지만 이 글을 작성하는 기준으로 가장 많이 사용하는 도구는 아마도 CocoaPods 일 것이다.

내가 CocoaPods을 사용하는 방법을 정리한 글이다.

CocoaPods은 Ruby를 사용하여 개발된 의존성 관리 도구 이다. 따라서 CocoaPods을 사용하기 위해서는 Ruby가 필요한데 macOS에 기본적으로 내장되었는 Ruby를 사용하여도 충분하다.

하지만 나의 경우 macOS 버전 별로 내장되어 있는 Ruby 버전이 다르고 RubyGems를 사용하여 gem을 설치할 때에도 내장된 Ruby의 경우 sudo 권한을 요구할 수도 있다.

이러한 단점을 보완하기 위해 나는 시스템 별로 rbenv를 사용하여 Ruby 환경을 관리하고, Bundler를 사용하여 설치되는 RubyGems를 관리하고 있다. CocoaPods을 제외하더라도 Ruby로 작성된 도구를 사용할 일이 아주 가끔있는데 로컬 머신과 빌드 머신과의 Ruby 환경의 차이를 최소화 하기 위해 rbenv를 사용하는 것을 권장한다. 귀찮으면 안써도 된다.

rbenv 설치

rbenv를 설치하는 방법은 Homebrew를 사용하면 매우 쉽다.

$ brew install rbenv

rbenv를 설치한 다음 적당히 설정을 마치고(여기서는 생략) Ruby 2.6.6 버전을 설치한다. 작성일 기준으로 Ruby의 안정 버전은 3.0.0이지만 경고 없이 실행되는 CocoaPods의 버전이 2.6.6인 것 같아서 나는 2.6.6버전의 Ruby를 사용하고 있다.

$ rbenv install 2.6.6

다음으로 rbenv 명령어 또는 .ruby-version 파일을 사용하여 우리가 사용할 프로젝트의 Ruby 버전을 일치시킨다.

Bundler 설치

이제 rbenv를 사용하여 우리가 사용할 Ruby 버전을 설치했으면 Bundler를 사용하여 RubyGems의 버전을 관리하면 된다.

우리가 사용할 CocoaPods은 Ruby로 개발된 일종의 RubyGems이다. rbenv를 사용하여 우리가 사용할 Ruby 환경을 구성했으므로 이제 Bundler를 사용하여 RubyGems를 관리하면 된다. Bundler의 최신 버전 설치는 터미널에서 다음과 같이 진행하면 된다.

$ gem install bundler

이제 프로젝트 별로 Bundler를 사용하여 RubyGems를 관리하려면 우리가 작성한 프로젝트 경로로 이동하고 다음 명령어를 실행한다.

$ bundle init

이제 해당 경로에 Gemfile이 추가되었을 것이다. Gemfile에 우리가 사용할 RubyGems와 버전을 명시하면 되는데 우리가 사용할 RubyGems는 CocoaPods 최신 버전이므로 Gemfile에 다음 내용을 추가하고 저장한다.

gem "cocoapods"

이제 우리 프로젝트에 의존적인 패키지를 정의했으므로 다음 명령어로 해당 경로에 RubyGems를 설치하면 된다.

$ bundle install

CocoaPods 사용

일반적으로 로컬에 설치하는 CocoaPods RubyGems와 달리 Bundler를 사용하여 설치한 CocoaPods을 실행할 때는 다음과 같다.

$ bundle exec pod <명령어>

이제 시스템과 독림적으로 운용가능한 CocoaPods 환경이 구성되었다.