Library

Carthage 라이브러리 생성 및 배포

GREEN.1229 2022. 2. 11. 09:29

안녕하세요. 그린입니다🟢
이번 포스팅에서는 드디어 마지막 라이브러리 관리 도구인 카르타고에 대해 학습해보려합니다🙋🏻

이전 포스팅에 이어서 제가 만들어둔 SuperStepper라는 이미 코코아팟과 SPM으로 지원 설정된 라이브러리에
카르타고도 지원이 되도록를 살포시 얹어 보도록 하겠습니다🙌
https://green1229.tistory.com/217

SPM 라이브러리 생성 및 배포

안녕하세요. 그린입니다🟢 이번 포스팅에서는 SPM 라이브러리를 생성하여 배포까지 하는 학습을 해보겠습니다💁🏻 이전 포스팅에서 CocoaPods으로 라이브러리를 생성하고 배포하고 또 업데이트

green1229.tistory.com

Carthage의 특징 및 도입 이유?

카르타고를 지원하려는 이유를 여쭤보신다면 사실 카르타고가 설정이 더 까다로웠던걸로 기억하는데
그럼에도 불구하고 코코아팟처럼 워크스페이스가 생기지 않아 기존 엑코플젝 파일(.xcodeproj)에서 작업할 수 있어서 좋습니다.
또 코코아팟은 라이브러리 코드를 전부 컴파일 및 빌드 시 설치하고 사용함으로 클린빌드를 할일이 많을텐데 그럴때마다 재설치를 하면 시간이 오래걸립니다.
반면 카르타고는 프레임워크를 프로젝트에 심는것으로 매번 라이브러리를 컴파일할 일이 없어집니다.
즉 정리하자면, 좀 더 안정성있고 빠른 빌드속도를 경험할 수 있죠!
이에 현재 많은 라이브러리들이 코코아팟보다 카르타고의 지원을 높이고 있는것으로 알고 있습니다👍

Carthage 지원해보기

1. 카르타고 설치

Homebrew를 이용하여 설치해주겠습니다.
터미널에서 아래 명령어를 입력합니다.

brew install carthage


2. 프레임워크 생성

기존에 코코아팟 및 SPM을 지원하는 라이브러리에 추가해줄거기에 우선 새 플젝을 임시로 생성합니다.
Xcode를 열고 아래와 같이 프레임워크를 생성해줍니다.

생성 시 프로덕트 네임은 기존 라이브러리 네이밍과 동일하게 가져갑니다.


3. 기존 라이브러리 프로젝트에 병합하기

아래와 같이 생성된 파일트리를 가서 헤더파일이 속한 폴더와 xcodeproj파일을 복사합니다.

그런다음 기존 라이브러리에서 SuperStepper가 있는 위치로 이동해 붙여넣어줍니다.
이때 꼭 병합 선택을 해줍니다.
그러면 아래와 같이 병합됩니다.

위 가져온 xcodeproj 파일로 들어갑니다.
코코아팟에서 생성된 Classes 폴더 전체를 플젝에 넣어줍니다.

요렇게요!
이렇게 해준다면 프로젝트 빌드경로 컴파일 소스에 해당 파일이 잘 들어갔습니다!


4. Scheme 확인

타겟에서 Manage Schemes을 클릭하고

저 Shared 옵션을 재클릭하여 정확히 적용되도록 해줍니다.
(되어있지 않다면 이 라이브러리를 카르타고로 사용하려고 할때 에러가 납니다.)


5. 배포하기

배포는 정말 간단합니다.
태그 버전 바꿔서 깃헙에 푸쉬해주면 끝..!!
이제 이 라이브러리를 카르타고로 사용하는 사람들이 Carthage 파일을 만들어 설정하여 사용하면 됩니다🙌

마무리

카르타고 배포는 별도 더 할것이 없어 간단하긴했는데 카르타고를 마지막에 하다보니 코코아팟과 SPM이 있는 플젝과
연동시키려는데서 조금 헷갈렸지만 여러분들이라면 헷갈리지 않으실 만큼 간단하네요👍

[참고자료]

https://yagom.net/courses/open-source-library/lessons/카르타고-라이브러리-배포하기/

오픈소스 라이브러리 만들기 - 야곰닷넷

코코아팟(CocoaPods), 카르타고(Carthage), 스위프트 패키지 매니저(Swift Package Manager, SPM)를 활용하여 나만의 오픈소스 라이브러리(Open Source Library)를 만들어봅니다.

yagom.net