Carthage
≡ 목차 (Table of Contents)
Carthage
Carthage(카르타고)는 iOS 혹은 macOS 용 외부 오픈소스 프레임워크나 라이브러리 프로젝트 의존성을 관리해 주는 도구다. 비슷한 도구로 Swift Package Manager 혹은 Cocoapods가 있다.
Cocoapods와 차이점이 있다면, 중앙 집중적으로 패키지를 관리하지 않는다는 점이다. 개발자는 필요한 라이브러리나 프레임워크를 분산된 패키지 저장소를 직접 지목해 의존 패키지를 설치할 수 있게 해 준다.
그 외에 프로젝트 세팅을 전혀 건드리지 않는다는 점도 차이가 있다. 대신 터미널에서 CLI 명령어를 사용해서 설치 및 관리를 해야 한다.
Cartfile
Cartfile
은 Carthage 의존성 명세 파일이다.
의존성 패키지 명시
대충 아래와 같은 식으로 의존성을 추가할 수 있다.
github "user/projectname"
요즘은 웬만하면 깃허브를 이용해 프로젝트를 개발하면서 동시에 배포하는 경우가 많으므로 아마도 이런 의존성을 적는 방법이 가장 많이 쓰일 것 같다. 딱히 브랜치를 명시하지 않았으므로 대표 브랜치의 것이 사용될 것이다.
필요 버전 명시
원하는 버전이 있을 경우 아래와 같이 버전 룰을 표기할 수 있다.
github "user/projectname" >= 1.0 github "user/projectname" ~> 1.0 github "user/projectname" == 1.0
가운데 것만 제외하면 나머지는 직관적이다. 가운데 것은 1.0과 호환되는 버전이라는 의미로 대충 1.0.x 라는 의미로 이해하면 될 것 같다.
브랜치 명시
원한는 브랜치가 있을 경우 아래와 같이 명시할 수 있다.
github "user/projectname" "master" == 1.0
위의 예는 버전과 브랜치를 동시에 명시한 예이다.
CLI 사용법 정리
Carthage 설치
Homebrew로 쉽게 설치할 수 있다.
brew install carthage
의존성 설치하기
Cartfile을 작성한 후 아래 커맨드로 의존성을 설치할 수 있다.
carthage update
알아서 필요한 의존성을 클론 받아서 설치까지 진행한다.
플랫폼 전용 빌드
빌드된 프레임워크 위치
빌드가 완료되면 Carthage/Build/[Platform]
디렉터리에서 빌드 된 프레임워크를 찾을 수 있다. 이 프레임워크들을 Xcode에 드래그 해서 적당히 세팅해 주면 된다.