iOS/Swift

[Swift] Swift Package Manager 배포하기

차니 ☻ 2021. 8. 10. 06:21

욜로~ 차니에요!!

 

Xcode에서 외부 모듈(이하 라이브러리)을 사용하는 여러 방법들이 있는데요.

  1. Cocoapods 사용하기  
  2. Framework 사용하기  
  3. Swift Package Manager 사용하기

1, 2번 항목은 이전 포스팅에서 확인해보실 수 있고 오늘은 세 번째 항목인 SPM을 활용해보려고 합니다.

 

1. Swift Package 프로젝트 생성

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 생성

Swift Package 코드 업로드를 위한 repo를 생성해줍니다.

 

4. Git Push

Xcode에 Github 계정이 연동되어 있다고 가정하고 작성하겠습니다.

Source Control - Pull... 을 클릭해줍니다.
계정 연동 후 Address의 Url이 3번에서 생성한 것과 동일한지 확인
Push 이후 코드가 정상적으로 업로드 된 것을 확인합니다.

5. 배포를 위한 버전 tag 생성

git tag 0.1.0
git push origin 0.1.0

6. 실제 프로젝트에서 받아보기

라이브러리를 사용할 프로젝트에서 Swift Packages에 들어가면 xcode와 연동된 Git repository가 자동으로 불러와집니다.

방금 만든 MyLibarary를 선택할게요.

 

Repository Url, Version 아까 만든 것과 동일하죠?
좌측 네비게이터 하단에 정상적으로 받아진 모습이 보입니다.

 

이상으로 포스팅 마치겠습니다.

틀린 부분이나 질문은 댓글로 남겨주세요!