【问题标题】:Xcode build reports "no such module" for Swift Package Manager packages. Building again and again eventually fixes itXcode 构建报告 Swift 包管理器包的“没有这样的模块”。一次又一次地构建最终修复它
【发布时间】:2022-08-15 01:39:15
【问题描述】:

我明白了\"没有这样的模块\"在执行 \"Clean Build Folder\" 后尝试构建时出错。反复尝试构建最终导致没有错误。

重要提示:找不到的模块是本地包使用 Swift 包管理器,即不是从 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 构建。

我在这里做错了吗?

  • 尝试清理你的构建文件夹,你在使用 pod 吗?
  • 您能否提供一个示例项目来重现此警告?
  • @Osian - 正如我在第一句话中所说的那样。在执行完之后尝试构建时,我没有收到此类模块错误清理构建文件夹.我还清理了“派生数据”。
  • @Osian 没有豆荚。

标签: ios swift xcode swift-package-manager swift-package


【解决方案1】:

当您删除派生数据时,或者有时 Xcode 的包缓存会变得混乱。这通常会导致无法真正解释的奇怪构建错误。以下是可能有帮助的事情:

重置 Xcode 包缓存:要重置包缓存,请打开文件菜单,导航到包,然后单击重置包缓存。这将删除所有本地包数据并从其在线源重新下载每个包。等到所有包下载

【讨论】:

  • 谢谢,我已经重置了所有缓存等。没有区别。实际上 - 没有在线软件包可供下载。只有6个本地SPM套餐.事实上,我相信这是整个问题。我不认为 SPM 可以在使用本地包时处理正确的依赖关系解析(即依赖关系中的文件 url,没有 git)。
【解决方案2】:

您可以尝试使用 Xcode CommandLine 工具:

xcodebuild在项目目录下

它通常可以在没有这个令人沮丧的问题的情况下工作

【讨论】:

    猜你喜欢
    • 2022-10-22
    • 2022-11-09
    • 2019-05-08
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 2022-11-05
    相关资源
    最近更新 更多