🦄
.xcworkspace と Swift PackageなプロジェクトにSPMでライブラリを導入する
概要
.xcworkspaceとSwift Packageで管理しているプロジェクトにSPMでライブラリを導入する方法について説明します。
.xcworkspaceとSwift Packageについてや導入方法などはこの後の記事で書きます。
プロジェクト構成
Eevee
├── EeveeProject
│ ├── Package.swift
│ ├── Sources
│ └── Tests/EeveePackageTests
├── EeveePackage
├── EeveeWorkspase.xcworkspace
└── Tools
├── Package.resolved
└── package.swift
追加方法
今回はサンプルとしてNukeを追加してみます。
package.swiftは以下の様になっています。
package.swift
import PackageDescription
let package = Package(
name: "EeveePackage",
platforms: [
.iOS(.v15)
],
products: [
.library(
name: "EeveePackage",
targets: ["EeveePackage"])
],
dependencies: [
.package(url: "https://github.com/kean/Nuke.git",
.exact("10.8.0")),
],
targets: [
.target(
name: "EeveePackage",
dependencies: [
.target(name: "HogeTarget"),
.product(name: "Nuke", package: "Nuke"),
])
.testTarget(
name: "EeveePackageTests",
dependencies: ["EeveePackage"]),
]
)
まず、dependencies: []内に導入するライブラリのurlと導入したいバージョンを指定します。
package.swift
dependencies: [
.package(url: "https://github.com/kean/Nuke.git",.exact("10.8.0")),
],
targets: []にある導入したい.targetの中で、
dependencies: []内に.productでライブラリを指定します。
package.swift
targets: [
.target(
name: "EeveePackage",
dependencies: [
.target(name: "HogeTarget"),
.product(name: "Nuke", package: "Nuke"),
])
]
以上でSPMを用いてライブラリを導入することができます。
Discussion