TJe*_*Jez 7 xcode ios swift swift-package-manager swift-package
在执行“清理构建文件夹”后尝试构建时,我收到“没有此类模块”错误。反复尝试构建最终没有错误。
重要提示:找不到的模块是使用 Swift Package Manager 的本地包,即不是从 git 下载的。我像这样指定这些依赖项:
.package(url: "file:../CoreGraphicsExtensions", from: "0.0.0")
Run Code Online (Sandbox Code Playgroud)
/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"]),
]
)
Run Code Online (Sandbox Code Playgroud)
这是我尝试构建时在 Xcode 中看到的内容。
首先构建...
第二次构建...
第三次构建...
第四期建设...
第五期建设...
...终于运行了。
但是有一些关于这些包未被任何目标使用的奇怪警告。
在干净的构建之后,我怎样才能让它第一次正确构建?
我的工作区结构如下所示......
工作区中的两个项目。BlenderViewer 有我正在构建的目标。BlenderViewer 有 6 个本地 SPM 包。它还导入 PhyKit 项目作为框架,没有任何问题。SPM 包之间存在一些依赖关系,但没有循环关系。
在我看来一切都很好......
我运行的是 MacOS 12.5。Xcode 13.4.1。为 iOS 15.3 构建。
我在这里做错了什么吗?
我对在线包也遇到了同样的错误(在删除并重新添加它之后),并且对于清理派生数据、重置包缓存和从命令行解决依赖关系的其他建议也没有运气。
我最终发现,需要将有问题的包手动重新添加到Build Phases>中的应用程序目标中Link Binary with Libraries。这解决了这个问题。
当您删除派生数据时,有时 Xcode 的包缓存会变得混乱。这通常会导致无法真正解释的奇怪的构建错误。以下是可能有帮助的事情:
重置 Xcode 包缓存:要重置包缓存,请打开“文件”菜单,导航到“包”,然后单击“重置包缓存”。这将删除所有本地包数据并从在线源重新下载每个包。等待所有包下载完毕
| 归档时间: |
|
| 查看次数: |
5360 次 |
| 最近记录: |