티스토리 뷰

공부

Carthage 사용해보기

Zedd0202 2021. 4. 17. 22:28
반응형

 

안녕하세요 :) Zedd입니다.

저번글은 Carthage에 대한 이론적인 공부였다면..오늘은 직접 사용해보도록 하겠습니다.

 

# 설치

설치방법은 여기에 나와있습니다. 설치방법이 4가지 정도 되는데, 저는 Homebrew를 이용하여 설치해볼게요.

brew install carthage

Carthage최신버전을 확인해서 최신버전으로 잘 설치가 되었는지 확인해주세요. 

 

# 사용

1. 사용할 프레임워크/라이브러리 찾기 

저번글에서도 말했지만, Carthage는 decentralized dependency manager이기 때문에..찾기가 CocoaPods보다 힘듭니다.

찾기 쉬운 방법은 Github 토픽에 Carthage를 검색하는 것 같아요~

그럼 이렇게 Carthage를 지원하는 저장소들이 쫙 나옵니다.

저는 Alamofire를 사용해볼게요!

 

2. 프로젝트 준비

 

3. Cartfile 파일 만들기 

Cartfile은 프로젝트의 종속성을 설명하는 파일이라고 보면 됩니다. 

 

4. 사용하고자 하는 프레임워크/라이브러리 저장소 가기

저는 Alamofire를 사용할거니까..저장소로 가줍니다. 

보통 Installation부분에 

이렇게 나와있을텐데, 복사해줍니다.

 

5. Cartfile에 붙혀넣기

그냥 이렇게 넣어주세요.

Cartfile의 예는 여기서 볼 수 있으니 확인해주세요! 

 

6. carthage update --use-xcframeworks 실행

Carthage문서에서는 위 명령어를 실행하라고 되어있는데요. 명령어를 실행하면

막 이렇게 빌드를 합니다. 저번글에서 말했던 미리 빌드한다는게 이 단계에서 하게 되는거에요!

Carthage / Checkouts 폴더가 생겼을텐데, 이 폴더로 종속성을 가져와서 빌드를 하게 되고, 

빌드 된 결과를 Carthage / Build로 이동시킨다고 합니다.

지금 iOS이외의 플랫폼것들도 다 빌드를 하는데요, iOS만 빌드를 해주고싶다!!고 하면

carthage update --use-xcframeworks --platform iOS 

이렇게 플랫폼을 지정하면 됩니다.

그럼 이렇게 iOS만 빌드해요!

 

7. 프로젝트와 연결

저번글에서 

Carthage는 바이너리 프레임워크를 다운로드 & 빌드까지만 하고 다른 모든 작업은 개발자에게 맡겨집니다.

라고 했는데, 이제 이 빌드한 프레임워크를 프로젝트와 연결시켜주는 작업은 우리의 몫이에요.

타겟의 General 탭에 가서 

아래로 내리면 Frameworks, Libraries, and Embedded Content 섹션이 있습니다. 

여기에

Carthage / Build 폴더에 있는 .xcframework파일을 추가해줘야합니다. 

왼쪽 아래 + 버튼을 눌러서 추가하거나,

이렇게 드래그 앤 드롭으로 가져올 수도 있습니다. 

그럼 이제 

프레임워크 사용이 가능해집니다 ~.~

그냥 왠지 모르게 Carthage는 어려울 것 같았는데..하나도 안어렵네요!!

 

그리고 좋은점..

xcworkspace가 안생긴다..!!!!!! 

 

🙋 : 여기에 가보면..Build Script를 추가하더라구요..Carthage문서에는 따로 Build Script를 추가해라~는 없던데

안해도 되는거겠죠...!? (문서에 보면, 종속성을 복사하고 싶을 때 위 Build Script를 추가하라고 되어있어요.)

 

참고 

github.com/Carthage/Carthage

stackoverflow.com/a/52714806

반응형

'공부' 카테고리의 다른 글

extension Reactive  (1) 2021.04.28
PinLayout 사용해보기  (0) 2021.04.21
Carthage  (0) 2021.04.15
Swift ) Quick / Nimble 간단하게 사용해보기  (0) 2021.04.14
Diffable Datasource - supplied item identifiers are not unique  (1) 2021.04.12