Xcode构建报告Swift Package Manager软件包“没有这样的模块”,一次又一次的构建最终修复了这个问题

v09wglhw  于 2023-01-06  发布在  Swift
关注(0)|答案(4)|浏览(131)

我得到**“没有这样的模块”错误时,试图建立后,做了“清洁建立文件夹”。重复尝试建立最终没有错误的结果。
重要提示:无法找到的模块是
本地包**,使用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构建。
"我做错了什么吗"

cygmwpex

cygmwpex1#

我在一个在线包上也遇到了同样的错误(在删除并重新添加它之后),而且在清理派生数据、重置包缓存和从命令行解析依赖项的其他建议上也没有什么运气。
我最终发现,有问题的软件包需要手动重新添加到Build PhasesLink Binary with Libraries中的应用目标中。

vsnjm48y

vsnjm48y2#

当你删除了派生数据或者有时Xcode的包缓存变得混乱。这通常会导致奇怪的构建错误,无法真正解释。以下是一些可能有用的东西:
重置Xcode包缓存:要重置包缓存,请打开“文件”菜单,导航到“包”,然后单击“重置包缓存”。这将删除所有本地包数据,并从其联机源重新下载每个包。等待所有包下载完毕

lmvvr0a8

lmvvr0a83#

您可以尝试使用Xcode CommandLine工具:
项目目录上的xcodebuild
它通常不会出现这种令人沮丧的问题

lnlaulya

lnlaulya4#

我遇到了TestTarget的相同问题,它最终无法解析主目标本地SPM,使用此方法修复时,我也将所有主目标依赖项添加到测试目标,在找到之后,我遇到了一些编译器问题,其中编译器向我显示了此错误,修复错误后,此错误消失

相关问题