반응형
swift package를 사용해서 프로젝트를 생성하고, Package.swift 에 필요한 디펜던시 package 를 추가하는 연습을 하는 중에, 아래와 같은 에러가 발생했다.
생성한 프로젝트는 Banner 라는 이름의 프로젝트였고, swift-argument-parser 의 ArgumentParser 를 이용하려고, Package.dependencies 에 .package(url: "https://github.com/apple/swift-argument-parser", from: "0.0.1"), 을 추가했다. 그리고, Package.targets.executableTarget.dependencies 에 "ArgumentParser"를 추가했다. 이렇게 추가한 Package.swift 파일은 다음과 같다.
// swift-tools-version: 5.6
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "Banner",
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
.package(url: "https://github.com/apple/swift-argument-parser", from: "0.0.1"),
],
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.
.executableTarget(
name: "Banner",
dependencies: ["ArgumentParser"]),
.testTarget(
name: "BannerTests",
dependencies: ["Banner"]),
]
)
swift build 를 실행했을 때 에러메시지는 다음과 같았다.
Working copy of https://github.com/apple/swift-argument-parser resolved at 0.5.0
'banner': error: dependency 'ArgumentParser' in target 'Banner' requires explicit
declaration; reference the package in the target dependency with
'.product(name: "ArgumentParser", package: "swift-argument-parser")'
error: ExitCode(rawValue: 1)
.executableTarget.dependencies 에서 단순문자열로 준 것을 에러메시지에서 지시한대로 다음과 같이 바꾸어 문제가 해결됐다.
.executableTarget(
name: "Banner",
dependencies: [
.product(name: "ArgumentParser", package: "swift-argument-parser")
]
),
728x90
'프로그래밍 > SWIFT' 카테고리의 다른 글
[Swift] swift 단일 스크립트 파일을 컴파일하기 (0) | 2022.06.16 |
---|---|
Swift 북마크 (0) | 2022.06.08 |
Swift Closure error: ambiguous use of operator (0) | 2022.05.27 |
Swift Optional 몇가지 실험 (0) | 2022.05.27 |
swift 코드를 간단히 console에서 실행하기 (0) | 2022.05.26 |