기다리던 Xcode 11 GM이 나왔다.
과감하게(?) 개발 중이던 프로젝트를 열고 SPM
을 지원하는 외부 library를 리스팅 후 Podfile
에서 삭제하고 이를 SPM
으로 관리할 수 있게 설정을 해보았다…
과정은 아래와 같다.
SPM을 이용해 외부 라이브러리 등록하기
SPM
을 이용하여 외부 프레임워크를 등록하기 위해서는 Project -> Swift Package로 이동하여 +버튼 선택 혹은 상단 메뉴 File -> Swift Packages -> Add Package Dependency… 를 선택한다.
현재 SPM을 지원하는 인기(필자가 주로 사용하는 ㅋ) 외부 라이브러리는 얼추 아래와 같다.
RxSwift
,RxCocoa
,RxDataSources
Alamofire
SDWebImage
SnapKit
위에 나열된 것 외의 오픈소스 library가 SPM을 지원하는지 여부를 확인하기 위해서는 해당 Git Repository로 가서 확인하면 되겠다. (CocoaPods
으로 관리하던 라이브러리가 대부분일텐데 https://cocoapods.org 로 이동 후 원하는 라이브러리를 검색하고 상세 보기에서 오른쪽 하단에 보면 GitHub Repo 링크를 통해 이동하면 편리하다.)
버전 관리 룰 지정
Repository URL 을 입력하고 하단 Next 버튼을 누르면 해당 Repository를 검색한 후 아래와 같이 버전 관리 rules를 어떻게 할 것인지 묻는 창으로 바뀐다.
버전 관리룰은 아래와 같으며, 편한 방법으로 지정하면 된다. 이 룰은 언제든지 변경 가능하다.
- 버전 범위 지정
- Up to Next Major – Major 버전으로 지정 (i.e. 4.9.0 이상 5.0.0 미만)
- Up to Next Minor – Minor 버전으로 지정 (i.e. 4.9.0 이상 4.10.0 미만)
- Range – 직접 지정하기 (i.e. 4.9.0 이상 4.11.0 미만)
- Exact – 특정 버전만으로 특정하기 (i.e. 4.9.0)
- Branch
- git branch 이름으로 지정 (i.e. master)
- Commit
- 특정 git commit으로 지정 (i.e. bf92c493432c490)
Library 선택하기
일반적으로는 하나의 repository에 하나의 library가 존재하지만 RxSwift
와 같이 여러 개의 library가 존재하는 케이스도 있다. 여러 개의 library가 존재할 경우 체크박스를 통해 가져올 라이브러리를 선택하도록 한다.
준비완료
이제 환경은 구성되었다.
잘 구성되었는지 확인을 위해 아래처럼 해당 모듈을 import 해보자.
빌드가 성공적으로 되었다면 이제 잘 쓰면 된다.
하지만 필자가 현재 관리 중인 프로젝트의 경우 빌드가 실패하였는데 이는 다른 글로 이어가겠다.