Swift 从SPM生成的Xcode项目出现运行时错误(dyld:未加载库,库版本不兼容)
我正在使用Swift包管理器构建一个命令行工具,作为依赖项使用 下面是我的参考资料,我成功地使用Swift 从SPM生成的Xcode项目出现运行时错误(dyld:未加载库,库版本不兼容),swift,xcode,Swift,Xcode,我正在使用Swift包管理器构建一个命令行工具,作为依赖项使用 下面是我的参考资料,我成功地使用swift build-c版本编译并运行了该工具 我还使用swift-package-generate-xcodeproj生成了相应的Xcode项目,这样我就可以使用调试器并更有效地工作 但是,每当我尝试从Xcode运行工具时,都会出现以下错误: dyld: Library not loaded: /System/Library/Frameworks/Carbon.framework/Versions
swift build-c版本
编译并运行了该工具
我还使用swift-package-generate-xcodeproj
生成了相应的Xcode项目,这样我就可以使用调试器并更有效地工作
但是,每当我尝试从Xcode运行工具时,都会出现以下错误:
dyld: Library not loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
Referenced from: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
Reason: Incompatible library version: HIToolbox requires version 1.0.0 or later, but Ink provides version 0.0.0
Program ended with exit code: 9
作为参考,这是我的软件包。swift
:
import PackageDescription
let package = Package(
name: "SwiftSiteGen",
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
.package(
url: "https://github.com/johnsundell/files.git",
from: "4.0.0"
),
.package(
url: "https://github.com/johnsundell/Ink.git",
from: "0.1.3"
),
],
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 which this package depends on.
.target(
name: "SwiftSiteGen",
dependencies: ["SwiftSiteGenCore"]),
.target(name: "SwiftSiteGenCore",
dependencies: ["Files", "Ink"]),
.testTarget(
name: "SwiftSiteGenTests",
dependencies: ["SwiftSiteGen"]),
]
)
我在Xcode 11.2.1和macOS 10.14.4上运行
由于运行swiftcbuild
是可行的,我觉得问题在于Xcode试图使用动态框架而不是静态库。可能是相关的问题
是否需要更改某些Xcode项目设置以使其正常工作?验证解决方案 不运行
swift包生成xcodeproj
相反,只需在Xcode中直接打开Package.swift
这样,所有的包都是静态链接的。似乎名称之间存在冲突。苹果提供了Ink.framework,它比John的Ink更受欢迎。