Swift package manager. Error: Found multiple packages with the name...?
Swift package manager. Error: Found multiple packages with the name...?
让我们说:
B 是一个依赖 CommonLib 的库
App 依赖 B 和 CommonLib
这是他们的主要节目
B 的 Package.swift:
import PackageDescription
let package = Package(
name: "B",
products: [
.library(
name: "B",
targets: ["B"]),
],
dependencies: [
.package(url: "https://.../CommonLib", from: "1.0.0"),
],
targets: [
.target(
name: "B",
dependencies: ["CommonLib"]),
.testTarget(
name: "BTests",
dependencies: ["B"]),
]
)
应用的Package.swift
import PackageDescription
let package = Package(
name: "App",
dependencies: [
.package(url: "https://.../CommonLib", from: "1.0.0"),
.package(url: "https://.../B", from: "1.0.0"),
],
targets: [
.target(
name: "App",
dependencies: ["CommonLib", "B"]),
.testTarget(
name: "AppTests",
dependencies: ["App"]),
]
)
swift build
error: Found multiple packages with the name CommonLib...
如果 App 和 B 都依赖于 CommonLib 并且如果我将 B 和 CommonLib 导入 App
发现多个名为...
的包时出错
Apple Swift 版本 4.0.2 (swiftlang-900.0.69.2 clang-900.0.38)
目标:x86_64-apple-macosx10.9
有谁知道如何解决这个问题?
如果你想手动将它们导入库,你会看到这个错误。多个包不能同名。
对于解决方案,您必须更改清单并删除其中之一。但是,我认为如果您使用 CocoaPod,这是可以解决的,它是管理包和库的完美工具。您还可以从 CocoaPod 轻松更改清单。
删除 Package.pins
并重新运行 swift build
。查看它正在尝试获取哪些包。检查 .build/checkouts
和 .build/dependencies-state.json
- CommonLib 的哪些标签和哪些版本分别写在那里。
让我们说:
B 是一个依赖 CommonLib 的库
App 依赖 B 和 CommonLib
这是他们的主要节目
B 的 Package.swift:
import PackageDescription
let package = Package(
name: "B",
products: [
.library(
name: "B",
targets: ["B"]),
],
dependencies: [
.package(url: "https://.../CommonLib", from: "1.0.0"),
],
targets: [
.target(
name: "B",
dependencies: ["CommonLib"]),
.testTarget(
name: "BTests",
dependencies: ["B"]),
]
)
应用的Package.swift
import PackageDescription
let package = Package(
name: "App",
dependencies: [
.package(url: "https://.../CommonLib", from: "1.0.0"),
.package(url: "https://.../B", from: "1.0.0"),
],
targets: [
.target(
name: "App",
dependencies: ["CommonLib", "B"]),
.testTarget(
name: "AppTests",
dependencies: ["App"]),
]
)
swift build
error: Found multiple packages with the name CommonLib...
如果 App 和 B 都依赖于 CommonLib 并且如果我将 B 和 CommonLib 导入 App 发现多个名为...
的包时出错Apple Swift 版本 4.0.2 (swiftlang-900.0.69.2 clang-900.0.38) 目标:x86_64-apple-macosx10.9
有谁知道如何解决这个问题?
如果你想手动将它们导入库,你会看到这个错误。多个包不能同名。
对于解决方案,您必须更改清单并删除其中之一。但是,我认为如果您使用 CocoaPod,这是可以解决的,它是管理包和库的完美工具。您还可以从 CocoaPod 轻松更改清单。
删除 Package.pins
并重新运行 swift build
。查看它正在尝试获取哪些包。检查 .build/checkouts
和 .build/dependencies-state.json
- CommonLib 的哪些标签和哪些版本分别写在那里。