본문 바로가기
Apple/Apple_Swift

Swift Package Manager(SPM)를 이용한 라이브러리 사용 방법

by LeviiOS 2024. 3. 14.
반응형

Swift Package Manager(SPM)는 Swift 언어를 위한 패키지 관리 도구다.
여기서 패키지 관리자란, 프로젝트에서 사용하는 외부 라이브러리나 프레임워크를 편리하게 관리할 수 있게 도와주는 도구를 말한다.
필요한 라이브러리를 쉽게 찾고, 추가하며, 업데이트할 수 있다. CocoaPods, Carthage와 같은 기존 의존성 관리 도구가 있지만, SPM은 편의성과 빌드 속도의 이점을 가져 갈 수 있다. 또한 애플에서 직접 제공하는 1st party 의존성 도구이므로 사용성이 높아지고 있다.
 
Swift Package Manager는 Swift 언어에 내장된 도구로, Xcode와 함께 자연스럽게 통합되어 사용할 수 있다.
참고로, 다른 언어의 패키지 관리 도구로는 JavaScript의 npm, Python의 pip, Ruby의 RubyGems 등이 있으며, SPM은 이와 유사한 역할을 Swift 개발 환경에서 수행한다.
 
아래 글에서 SPM를 이용해서 Alamofire 라이브러리를 추가하는 방법을 소개 해보겠다.
 
Swift Package 적용 방법 (ex: Alamofire)
 
[여기서 잠깐!]
Alamofire Library는 Swift로 작성된 HTTP 네트워킹 라이브러리로, iOS, macOS, watchOS, tvOS 등의 애플 플랫폼에서 네트워킹을 쉽고 편리하게 할 수 있도록 도와준다. Swift의 기본 네트워킹 라이브러리인 URLSession을 기반으로 하여 보다 간결하고 효율적인 API를 제공한다.
 
Github 페이지에서 특정 라이브러리 주소 복사하기:

Github 페이지에서 주소 복사

1. Github 페이지에 방문.
2. <> Code를 선택.
3. HTTPS 선택
4. 주소를 복사할 수 있는 버튼 선택
 
 
Xcode에서 패키지 추가:

스위프트 패키지 추가 과정

1번 -> 2번 -> 3번 -> 4번을 순서대로 선택한다.
또는
Xcode에서 프로젝트를 열고, 'File' > 'Swift Packages' > 'Add Package Dependency...'를 선택
 
 
패키지 저장소 URL 입력 및 버전 선택:

 
1. 복사한 주소를 입력.
2. 라이브러리 선택
3. 버전 선택 (라이브러리에서 권장하는 버전이 각각 다를 수 있다. 권장하는 버전을 선택하자.)
4. [여기서 잠깐!]
Up to Next Major Version:
현재 버전부터 다음 주 버전(major version) 이전까지의 모든 업데이트를 포함. 예를 들어, 1.2.3 버전에 대해 이 옵션을 사용하면, 2.0.0 이전의 모든 1.x.x 버전을 포함. 변경사항이 포함되기 전까지의 업데이트는 받되, 큰 변화를 포함하는 주 버전 업그레이드는 배제하고자 할 때 사용.

Up to Next Minor Version:
현재 버전부터 다음 부 버전(minor version) 이전까지의 업데이트를 포함한다. 예를 들어, 1.2.3에 대해 이 옵션을 사용하면, 1.3.0 이전의 모든 1.2.x 버전을 포함. 소규모 기능 추가나 버그 수정 등이 포함된 업데이트를 받되, 상대적으로 큰 변화가 포함된 부 버전 업그레이드는 배제하고자 할 때 적합하다.

Exact Version:
지정한 정확한 버전만을 사용하고자 할 때 이 옵션 사용하자.
프로젝트에 특정 버전의 라이브러리를 고정시키고 싶을 때 유용하며, 어떠한 업데이트도 받지 않는다.

Range of Versions:
지정한 버전 범위 내의 모든 버전을 포함. 예를 들어, 1.2.3 이상 2.0.0 미만까지의 모든 버전을 포함하도록 지정할 수 있다.
프로젝트가 특정 버전 범위의 라이브러리와 호환되도록 유지하고 싶을 때 사용.

Branch:
특정 브랜치의 최신 커밋을 추적한다. 개발 중인 라이브러리의 특정 브랜치를 사용하고자 할 때나, 안정화 버전이 아닌 최신 기능을 실험하고 싶을 때 유용.

Commit:
특정 커밋을 지정하여 그 상태의 코드를 사용합니다. 프로젝트가 특정 커밋의 코드에 의존적일 때 사용되며, 코드의 그 시점 상태를 정확히 반영한다.
 
(이어서...)
 
5. 패키지 추가 버튼을 선택한다.
 
 
타겟 설정과 패키지 추가:

1. 타겟을 설정한다.
2. 패키지를 추가한다.
 
 
패키지가 잘 추가되었는지 확인:

패키지 매니저 추가된 상황

1. 추가된 패키지, 이름, 다운받은 주소, 버전 정보가 표시된다.
2. 왼쪽 사이드 뷰에서도 패키지 이름과 버전 정보가 표시된다.
 
추가된 패키지 사용:

사용 예시

1. 추가된 라이브러리를 import 한다.
2. 해당 라이브러리 문서를 보고 코드에 적용한다.
 
다음 시간에는 실제로 Package Manager를 생성하는 방법을 작성해보려고 한다.
 
긴글 읽어주셔서 감사합니다 :)

반응형