SwiftUI Canvas 无法构建

SwiftUI Canvas won't build

我有一些 SwiftUI 代码,当我构建到真正的 iOS 设备或​​ iOS 模拟器时,它似乎工作得很好。

但是在 SwiftUI 中 canvas 预览显示 Failed to build MySwiftUI.swift

单击 Try Again 旁边的诊断按钮显示它失败并出现错误:

ld: framework not found FrameworkMyAppUses
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我已经为模拟器和设备构建了 FrameworkMyAppUses,它在我的框架搜索路径中。将应用程序构建到模拟器和设备都成功并且可以毫无问题地使用我的框架,它只是无法构建的 canvas 预览。

如果我点击 Try again Xcode 会告诉我 Build Succeeded 但 canvas 预览 window 继续只显示框架未找到错误。

有没有其他人经历过这个/知道可能的修复方法?

终于想通了!

事实证明,它找不到该库的原因是因为我在引用它时使用的是指向我的项目目录之外的某个位置的相对路径。

我的构建设置 Framework Search Paths 设置如下:

../path/to/my/framework

当我正常构建我的项目时,它运行良好,它会找到框架。所以看起来好像默认情况下我的构建脚本是我项目目录中的运行。

当我尝试为 SwiftUI 构建时,它一定是在我的根项目目录之外这样做的,所以相对框架路径不再正确,我得到了问题中显示的错误。

将框架搜索路径更新为(稍微不那么相对?)这样的路径:

$(PROJECT_DIR)/../path/to/my/framework

这样做是为了找到框架。现在我可以成功构建项目,并且我的 SwiftUI canvas 会按预期更新。

所以我遇到了同样的问题,只是它找不到我自己的模块...对我来说,问题是因为我有自定义构建配置并且它不喜欢自定义模块名称。解决方案是在 Build Settings > Product Module Name

中将模块重命名为与 debug 和 release 相同的名称

我希望这对某人有所帮助