iOS/지식 공유

[iOS] Carthage로 라이브러리 도입하기

언클린 2020. 1. 12. 17:07
728x90

ios 개발에 있어서 자주 등장하는 라이브러리 도입법에 대해서 설명드리겠습니다.

대표적으로 CocoaPod와 Carthage가 있는데 저는 Carthage가 편해서 자주 사용하고 있습니다. 

(몇 가지 라이브러리에 대해서는 지원이 되지 않는 것이 있기도 합니다.)

어려운 내용은 아니지만 Mac이나 터미널에 대해서 잘 모르시는 분이나 처음 접하시는 분들은 헷갈리는 부분이 있을 수도 있다고 생각해서 단계별로 설명드리겠습니다. 

(실제로 저도 처음에는 많이 막혔던 부분이기도 합니다...)


1. Homebrew 설치

터미널을 실행 후 밑의 링크를 복사 후 실행해서 패키지 관리자인 Homebrew를 설치합니다.

(이미 설치되어있으면 생략 가능합니다.)

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 

2. Carthage 설치

설치가 완료되었으면 터미널에 밑의 커멘드를 실행하여 Carthage를 설치합니다.

(이미 설치 되어있으면 생략 가능합니다.)

brew install carthage

 

3. 라이브러리 인스톨

이제 준비과정은 끝이 났다고 생각합니다. 본격적으로 Carthage를 사용한 라이브러리 도입을 해보겠습니다.

우선 라이브러리를 도입시킬 프로젝트가 필요합니다. 후에 터미널의 커멘드를 사용해서 해당 프로젝트 디렉터리까지 이동합니다.

이동 시에는 터미널에 cd를 입력 후 위의 캡쳐와 같이 폴더 그림을 드래그 하면 쉽게 이동 하실 수 있습니다.

이동 후 Cartfile을 만들어 줍니다. 

touch Cartfile

이제 Cartfile을 수정해서 사용하고자 하는 라이브러리를 인스톨해보겠습니다.

폴더 내에 Cartfile이라는 이름의 파일이 생성되어있을 텐데 집적 열어서 수정해도 되고 터미널 내에서 그대로 해도 상관없습니다.

터미널 내에서 할 시 저는 vim 또는 vi를 사용합니다.

vim Cartfile

(vim 간단한 조작법으론 i키를 눌러 입력 모드로 전환할 수 있으며 수정 후 esc를 눌러 입력 모드를 해제합니다. 후에 :wq를 입력하여 저장 후 종료를 할 수 있습니다.)

 

보통 라이브러리의 커멘드는 해당 라이브러리의 사이트에 있습니다. 복사 후 Cartfile에 붙여 넣고 저장하시면 됩니다.

(예를 들어, Alamofire라는 라이브러리는 현시점 최신은 github "Alamofire/Alamofire" "5.0.0-rc.3" 라고 되어 있습니다.)

 

이제 마지막으로 라이브러리를 인스톨해주는 커멘드를 입력하시면 됩니다.

carthage update --platform iOS

 

4. 라이브러리 프로젝트에 도입

이제 인스톨도 완료되었고 본격적으로 프로젝트에 도입시켜 보겠습니다.

Xcode를 이용하여 해당 프로젝트를 열어줍니다.

 그리고 프로젝트 파일의 [General]로 이동해 줍니다. 이동 후 밑에 Framework, Libraries...와 같은 탭의 [+]를 눌러 줍니다.

General

 

[+]를 누르시면 리스트가 보이게 됩니다. 여기서 외부의 라이브러리를 사용할 것이기 때문에 [Add Other]->[Add file...]를 클릭해 줍니다.

그리고 이하의 순으로 디렉토리를 이동하여 인스톨 한 라이브러리를 선택하여 넣어줍니다.

Carthage -> Build -> iOS -> 해당 라이브러리명.framework

 

이제 마지막 작업만이 남았습니다.

이번엔 [Build Phases] 탭으로 이동해 줍니다.

[+]를 클릭 후 [New Run Script Phase]를 선택하여 새로운 Run Script를 추가해 줍니다.

 

추가된 Run Script의 [Shell] 부분에 아래와 같이 작성해 줍니다.

/usr/local/bin/carthage copy-frameworks

이어서 [input Files]의 [+]를 눌러 다시 또 아래와 같이 입력해 줍니다.

$(SRCROOT)/Carthage/Build/iOS/라이브러리명.framework

이로서 Carthage를 사용한 라이브러리 도입이 완료되었습니다. 

 

미숙한 글이지만 많은 도움이 되었으면 좋겠습니다.


환경 

Xcode 11.3

Swift 5

728x90