我得到**“没有这样的模块”错误时,试图建立后,做了“清洁建立文件夹”。重复尝试建立最终没有错误的结果。
重要提示:无法找到的模块是本地包**,使用Swift Package Manager,也就是说,不是从git下载的。
.package(url: "file:../CoreGraphicsExtensions", from: "0.0.0")
如我的/UIKitExtensions/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: "UIKitExtensions",
products: [
// Products define the executables and libraries a package produces, and make them visible to other packages.
.library(
name: "UIKitExtensions",
targets: ["UIKitExtensions"]),
],
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
.package(url: "file:../CoreGraphicsExtensions", from: "0.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: "UIKitExtensions",
dependencies: []),
.testTarget(
name: "UIKitExtensionsTests",
dependencies: ["UIKitExtensions"]),
]
)
下面是我在尝试构建Xcode时看到的情况。
第一次构建...
第二个版本...
第三个版本...
第四个版本...
第五个版本...
......终于跑了。🥳
但是有一些奇怪的警告说这些包没有被任何目标使用。
如何在干净构建后第一次正确构建?
我的工作区结构如下所示...
工作区中的两个项目。BlenderViewer有我正在构建的目标。BlenderViewer有6个本地SPM包。它还将PhyKit项目作为框架导入,没有问题。SPM包之间有一些依赖关系,但没有循环。
我觉得一切都很好...
我运行的是MacOS 12.5,Xcode 13.4.1,为iOS 15.3构建。
"我做错了什么吗"
4条答案
按热度按时间cygmwpex1#
我在一个在线包上也遇到了同样的错误(在删除并重新添加它之后),而且在清理派生数据、重置包缓存和从命令行解析依赖项的其他建议上也没有什么运气。
我最终发现,有问题的软件包需要手动重新添加到
Build Phases
〉Link Binary with Libraries
中的应用目标中。vsnjm48y2#
当你删除了派生数据或者有时Xcode的包缓存变得混乱。这通常会导致奇怪的构建错误,无法真正解释。以下是一些可能有用的东西:
重置Xcode包缓存:要重置包缓存,请打开“文件”菜单,导航到“包”,然后单击“重置包缓存”。这将删除所有本地包数据,并从其联机源重新下载每个包。等待所有包下载完毕
lmvvr0a83#
您可以尝试使用Xcode CommandLine工具:
项目目录上的
xcodebuild
它通常不会出现这种令人沮丧的问题
lnlaulya4#
我遇到了
TestTarget
的相同问题,它最终无法解析主目标本地SPM,使用此方法修复时,我也将所有主目标依赖项添加到测试目标,在找到之后,我遇到了一些编译器问题,其中编译器向我显示了此错误,修复错误后,此错误消失