iOS

CocoaPods vs SPM vs Carthage

bereben 2022. 11. 11. 20:23

iOS 개발 패키지 관리자

오픈소스 라이브러리를 사용하려면
사용하려는 라이브러리를 설치해주고 버전 관리해줄 패키지 관리자가 필요하다.

1. CocoaPods

설치하는 법
gem install cocoapods

프로젝트가 있는 디렉토리에서 접근
pod init
profile에 필요한 라이브러리 추가 ex) pod 'SnapKit'
다시 터미널에서 pod install

장점

  1. 가장 많은 라이브러리 지원
  2. pod outdated 명령어로 새로운 버전관리가 쉽다.
  3. 사용하기 쉽다.

단점

  1. 라이브러리를 받아 설치하는데 시간이 많이 걸림
  2. 프로젝트 빌드할때마다 모든 팟 라이브러리가 함께 빌드되어서 다른 도구보다 프로젝트 빌드시간이 길다.

빌드를 할 때 cocoaPods에 설치된 모든 라이브러리를 빌드를 해서 앱 실행 속도를 매우 느리게 만든다.
그래서 요즘은 SPM을 많이 사용하는 편이다.


2. SPM

Swift Package Manager(1st party)

패키지 추가하는 법
File - add Packages - 사용할 라이브러리의 URL을 넣는다 - 사용한다.
개인적으로 생각했을 때 가장 설치하기 편했음
xcode 11부터 사용가능

장점

  1. 애플이 지원하는 패키지 라이브러리
  2. 정말 빠르게 라이브러리 추가 가능
  3. 별다른 설치가 필요없음
    그런데 왜 코코아팟을 많이 사용할까?
  4. SPM을 지원하는 오픈소스가 적다.
  5. 이용하는데 오류가 있다.(애플이 고쳐주겠지)

이번 프로젝트에서 SPM을 이용해 SnapKit과 RxSwift를 다운받고 위젯킷을 추가로 사용하려고 했을 때 문제가 생겼고
이를 해결하지 못해 결국 cocoapods로 바꿨다. 나중에는 SPM으로 바뀌겠지만 아직은 cocoapods이 더 호환성이 좋다.

결론: SPM으로만으로는 완전하지 않다.


3. Carthage

설치방법
brew update
brew install carthage

장점

  1. 미리 빌드된 프레임워크를 사용하기 때문에 빌드 속도가 빠르다.
  2. 모든 프로젝트 구성 권한은 사용자에게 있다.
  3. 분산형이다.

단점

  1. 불안정하다
  2. 라이브러리 지원이 적다.
  3. 읽기 어렵다. (카르타고)

참고:

  1. https://brunch.co.kr/@tilltue/58
  2. https://unnnyong.com/2020/05/18/ios-%EC%98%A4%ED%94%88-%EC%86%8C%EC%8A%A4-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-carthage-cocoapods-swift-package-manager/
  3. https://coding-sojin2.tistory.com/165
  4. https://tech.kakao.com/2022/06/02/swift-package-manager/

'iOS' 카테고리의 다른 글

SnapKit  (0) 2022.11.11
CocoaPods 설치, 오류 해결 법  (0) 2022.11.11