오늘은 CocoaPods 가 무엇인지 알아보도록 하겠습니다.
개발을 할 때 모든 것을 스스로 만드는 것도 좋지만 필요에 따라 Library 를 써서 시간과 노력을 절약하고 다른 곳에 좀 더 신경을 쓰는 것이 좋을 때도 있을겁니다. 하지만 그렇게 Library 사용 빈도가 점점 늘게되면 나중에는 Library 를 찾거나 관리하는데 시간이 많이 소모되게 됩니다. 그럼 아무래도 Library 를 쓰는 의미가 많이 퇴색되겠죠? 그래서 Xcode 에서 이런 Library 관리를 쉽게 할 수 있도록 도와주는 것이 CocoaPods 입니다.
즉 한마디로 CocoaPods 는 Library 관리 툴입니다. 각종 Libarary 를 설치, 삭제, 그리고 버전 관리를 할 수 있습니다. 개인 프로젝트에서도 충분히 그 역할을 다하지만, 여러 사람이 한 프로젝트를 공유하여 협업할 때 CocoaPods 내의 Library List (Podfile.lock) 파일만 전달해도 모두가 동일한 버전의 라이브러리를 손쉽게 설치할 수 있도록 도와주기도 합니다.
최근에는 Apple 이 공식적으로 지원하고 설치 및 관리가 더 편한 Swift Package Manager 가 등장하긴 했지만 SPM 에는 없는 Library 들이 CocoaPods 로는 존재하는만큼 Library 사용에 있어 절대로 빼놓을 수 없는 것이 CocoaPods 입니다.
그럼 이제 설치부터 사용방법까지 같이 한번 알아보도록 해요.
공식 홈페이지에서 CocoaPods 설치하기
먼저 CocoaPods 공식 홈페이지에 들어가보세요. 접속해서 스크롤을 조금만 내려보면 다음과 같은 페이지를 볼 수 있습니다.
![]()
sudo gem install cocoapods
그럴리 없겠지만 만약에 홈페이지에 접속이 안되거나 명령어를 찾지 못하는 분들은 위 코드를 복사해서 붙여넣으셔도 됩니다 ㅎㅎ
![]()
자 이렇게 하고 Return 키를 누르면 자동으로 설치가 완료됩니다. 자물쇠 모양이 뜬다면 맥북에 설정해 놓은 비밀번호를 치고 다시 한번 Return 키를 눌러주세요. 참고로 비밀번호 칠 때 아무것도 안쳐지는 것처럼 보일 수 있는데 그냥 치면 됩니다 ㅎㅎ
이렇게 CocoaPods 에 설치를 마쳤어요. 정말 간단했죠?
Homebrew 로 CocoaPods 설치하기
macOS Catalina 부터 CocoaPods 가 정상적으로 설치되지 않는 경우가 있다고 하네요. 저도 방금 맥북이 꼬여서 포맷 후에 CocoaPods 를 설치하는 과정에서 문제가 생겨서 많이 헤매다가 결국 Homebrew 를 통해 설치하는 방법으로 해결했습니다.
오히려 위에서 안내드렸던 방법보다 설치 및 삭제 관리까지 더 용이하기 때문에 저는 개인적으로 이제부터는 항상 Homebrew 를 통해서 설치하게 될 것 같아요.
brew install cocoapods
혹시 아직 Homebrew 를 설치하지 않은 분들은 다음 포스팅을 참고하여 먼저 설치를 진행해 주세요.
프로젝트에 CocoaPods 적용하기
자 그럼 실습을 위해 새로운 Xcode 프로젝트를 시작해볼게요. 프로젝트 생성 후에 해당 폴더 내로 들어가보면 아래와 같은 화면을 볼 수 있을거에요. 폴더 하나와 .xcodeproj 파일이 하나 있네요.
![]()
이제 이 곳에 CocoaPods 를 적용해보겠습니다. macOS 터미널에서 방금 전 만든 폴더가 있는 곳으로 들어간 뒤에 다음 명령어를 입력해주세요.
pod init
아래 스크린샷을 보면 처음에는 파인더에서 보았듯이 파일이 딱 2개만 있었는데 CocoaPods 를 프로젝트 폴더에 적용한 뒤에는 Podfile 이라는 새로운 파일이 하나 더 생긴 모습을 볼 수가 있습니다.
![]()
Library 적용하기
이렇게 새로운 Library 를 설치할 준비가 되었습니다. 그렇다면 라이브러리는 어떻게 설치할 수 있을까요? 조금 전에 우리가 방문했었던 CocoaPods 홈페이지로 돌아가 검색창에 SnapKit 을 입력해보세요.
![]()
이런식으로 결과가 보일거에요. 이중 제일 위의 SnapKit 을 클릭해서 들어가보도록 할게요. 우측에 옅은 회색으로 보이는 숫자는 현재 제가 설치하는 시점에서 가장 최신 버전이 5.0.1 이라는 뜻입니다.
![]()
스크롤을 조금만 내려보면 Installation 이라는 문구가 보일거에요. 이곳에 CocoaPods 라고 써져있네요. 딱 봐도 이곳을 살펴보면 될 것 같은 느낌이 들죠? 첫번째로 보이는 명령어는 우리가 이미 진행한 CocoaPods 의 설치법이고 우리에게 지금 필요한 것은 두번째 코드 블럭입니다. 처음보면 뭔가 복잡해보일 수 있지만 우리가 필요한 코드는 밑에서 두번째 줄에 위치한 pod 로 시작하는 명령어 단 한줄이에요. SnapKit 라이브러리의 5.0.0 version 이상을 설치하겠다는 의미입니다.
pod 'SnapKit', '~> 5.0.0'
그럼 조금 전 우리가 생성한 Podfile 을 열어주세요. 기본 텍스트 편집기도 좋고 Vim 도 좋고 그냥 텍스트 에디터 중 어떤 것으로 열어도 괜찮습니다. 저는 VSCode 로 작성해보겠습니다.
![]()
이제 SnapKit 을 설치할 준비가 모두 끝났습니다! 파일을 저장하고 닫은 뒤 터미널로 돌아가 설치 명령어를 입력해보도록 할게요 설치니까 당연히 install 이라고 치면되겠죠?
pod install
명령어를 실행하고 나면 다음과 같은 화면이 보이게 됩니다.
![]()
그럼 초반에 열어둔 Xcode 프로젝트 파일이 있던 파인더를 다시 한번 봐볼게요.
![]()
무언가 파일들이 엄청 많이 생겼어요 ㅎㅎㅎ 이게 전부 다 CocoaPods 관련 파일들이랍니다. Podfile 은 우리가 프로젝트에 설치하기 원하는 라이브러리를 찾아 이름과 버전을 적었던 파일이었던거 기억하시죠? 그럼 다른 파일들은 무엇인지 잠깐 알아보도록 할게요.
먼저 Podfile.lock 파일은 Podfile 에 적혀있던 목록들을 설치하고나면 이 프로젝트에 설치되어 있는 라이브러리의 목록과 버전을 정확하게 보관하고 있는 파일입니다. 우리가 방금 SnapKit 을 설치했을 때는 최신 버전이 5.0.0 대 였지만 먼 훗날 언제가 우리가 이 파일을 누군가에게 전달하고 그 사람이 SnapKit 을 설치할 때는 최신 버전이 6.0.0 대 일 수 있잖아요? 그럼 라이브러리 호환성으로 인한 충돌이 발생할 수 있기 때문에 이런 상황을 방지하고자 CocoaPods 는 Podfile.lock 에 본인이 설치한 라이브러리들의 대한 정보를 정확히 기록해두는 거에요. 즉 이 파일만 공유하면 프로젝트에 설치된 라이브러리의 버전을 협업하는 사람들과 항상 동일하게 유지할 수 있게됩니다.
Pods 폴더는 실제 라이브러리에 관련된 데이터가 들어가있는 곳이에요. 무언가 문제가 생겨 처음부터 다시 설치하고자할 때는 이 폴더를 통째로 삭제하고 pod install 을 통해 라이브러리를 다시 설치할 수 있습니다.
그리고 이전에는 볼 수 없었던 흰색 Xcode 파일이 생겼습니다. 확장자는 .xcworkspace 로 CocoaPods 가 설치된 이후부터는 프로젝트 실행 시 xcodeproj 대신 이 파일을 사용해야 합니다. 기존 xcodeproj 파일과 완전히 동일하고 한쪽을 수정하게되면 다른 한쪽도 수정되지만 xcodeproj 에서는 CocoaPods 로 설치한 라이브러리들을 정상적으로 인식할 수 없으므로 사실상 작업이 불가능합니다. 그러니까 CocoaPods 로 Xcode 프로젝트에 라이브러리를 설치했다? 그럼 .xcworkspace 파일만 사용한다 이렇게 생각해주세요.
그럼 이제 workspace 파일을 실행시켜서 SnapKit 을 import 해보겠습니다.
![]()
좌측 Navigator 에 기존에는 볼 수 없었던 새로운 파일들이 많이 생긴 것을 볼 수 있습니다. 우리가 특별히 건들 필요가 없는 파일들이니까 겁먹지 않아도 됩니다 ㅎㅎㅎ 그리고 정상적으로 SnapKit 이 import 된 것도 확인할 수 있습니다. 혹시라도 에러가 발생한다거나하는 문제가 있는 분들은 Xcode 를 완전히 껏다가 다시 한번 실행해주세요.
이렇게 CocoaPods 를 설치하고 간단하게 Library 를 적용하는 방법까지 알아보았습니다. 터미널이랑 웹페이지 등을 왔다갔다 해야되서 조금 복잡해보일 수도 있지만 다른 라이브러리들도 모두 동일한 방식으로 사용가능하니까 조금만 반복해보면 금방 익숙해질 수 있을거에요.