관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] Carthage (카르타고) - 사용 방법 (Cartfile) 본문

iOS 응용 (swift)

[iOS - swift] Carthage (카르타고) - 사용 방법 (Cartfile)

jake-kim 2023. 3. 6. 22:42

1. Carthage (카르타고) - 개념 Cocoapods과 비교하여 이해하기

2. Carthage (카르타고) - 사용 방법 <

카르타고 설치

brew install carthage

카르타고를 통해 프레임워크 빌드하기

  • Cocoapods과는 다르게 미리 프레임워크들을 빌드하여 Xcode에서 프로젝트 빌드 시 매번 프레임워크를 빌드하지 않아서 속도에서 유리한 점이 존재
  • Cartfile['칼트파일'] 파일이란?
    • Cocoapods의 podfile처럼 프레임워크의 이름을 적는 곳
    • Carthage에서는 Cartfile이라는 파일을 통해서 의존성을 관리하며, Cartfile은 ODGL(Ordered Graph Data Language)의 한 종류
    • ODGL은 들여쓰기로 그래프 형식 데이터를 나타내는 구조화된 텍스트 형식 파일
// https://ogdl.org/

network
  eth0
    ip   192.168.0.10
    mask 255.255.255.0
    gw   192.168.0.1

hostname crispin
  • Cartfile 추가
    • 프로젝트와 같은 디렉토리에 추가
% vi Cartfile

프로젝트와 같은 디렉토리에 추가된 Cartfile

  • 설치할 프레임워크가 Alamofire인 경우, Alamofire 깃헙 페이지에 가서 Carthage 검색
    • 아래 나와있는 github "Alamofire/Alamofire"를 복사

  • 위에서 만든 Cartfile 파일에 복사한 내용 입력

  • 카르타고 빌드 실행
carthage update --use-xcframeworks --platform iOS

빌드 완성

  • 생겨난 파일과 폴더
    • Cartfile.resolved
    • Carthage 폴더

  • Cartfile.resolved
    • 빌드된 프레임워크의 버전을 명시해놓은 파일
// Cartfile.resolved
github "Alamofire/Alamofire" "5.6.4"
  • Carthage 폴더에는 빌드된 프레임워크의 내용이 존재 (info.plist, ios-arm64 전용, x86 전용 Alamofire의 내용이 존재)

카르타고를 통해 얻은 프레임워크를 연결하기

  • Target > General > Frameworks, Libraries, and Embedded Content > + 버튼 클릭

  • Add files... 선택

  • Carthage/Build/Alamofire.xcframework 선택

  • 완성
    • 여기서 Embed 옵션의 디폴트는 Embed & Sign으로 설정되어 있음
    • dynamic framework인 경우 Embed로하고, static framework는 do not Embed로 설정할 것 (관련 내용은 이전 포스팅 글 참고)

(완료 - 바로 사용 가능)

* 참고

https://ogdl.org/

https://github.com/Carthage/Carthage/blob/master/Documentation/Artifacts.md#cartfile

https://github.com/Carthage/Carthage#installing-carthage

Comments