욜로~ 차니에요!!
Xcode에서 외부 모듈(이하 라이브러리)을 사용하는 여러 방법들이 있는데요.
- Cocoapods 사용하기
- Framework 사용하기
- Swift Package Manager 사용하기
1, 2번 항목은 이전 포스팅에서 확인해보실 수 있고 오늘은 세 번째 항목인 SPM을 활용해보려고 합니다.
1. Swift Package 프로젝트 생성
2. Package.swift
// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "MyLibrary",
products: [
// Products define the executables and libraries a package produces, and make them visible to other packages.
.library(
name: "MyLibrary",
targets: ["MyLibrary"]),
],
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages this package depends on.
.target(
name: "MyLibrary",
dependencies: []),
.testTarget(
name: "MyLibraryTests",
dependencies: ["MyLibrary"]),
]
)
Swift Package 프로젝트를 생성하면 Package.swift 파일이 자동으로 생성되는데 pod 라이브러리를 만들 때 썼던 podspec 파일과 동일한 포지션이라고 생각하시면 됩니다.
- name : 라이브러리 이름입니다.
- platforms: 지원하는 플랫폼 리스트입니다.
- .iOS
- .macOS
- .tvOS
- .watchOS
- products : 패키지를 정의하는 항목입니다.
- Library
- Executable 은 사용자에게 실행가능한 패키지를 제공할 때에 사용됩니다.
- targets : 동일한 패키지 안에서 의존성이 지정된 타겟들을 나열합니다.
- swiftLanguageVersions : 지원하는 스위프트 언어 버전들을 나열합니다.
3. Git Repository 생성
4. Git Push
Xcode에 Github 계정이 연동되어 있다고 가정하고 작성하겠습니다.
5. 배포를 위한 버전 tag 생성
git tag 0.1.0
git push origin 0.1.0
6. 실제 프로젝트에서 받아보기
라이브러리를 사용할 프로젝트에서 Swift Packages에 들어가면 xcode와 연동된 Git repository가 자동으로 불러와집니다.
방금 만든 MyLibarary를 선택할게요.
이상으로 포스팅 마치겠습니다.
틀린 부분이나 질문은 댓글로 남겨주세요!