【问题标题】:SwiftUI Canvas won't buildSwiftUI Canvas 无法构建
【发布时间】:2019-12-28 23:49:39
【问题描述】:

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

但是在 SwiftUI 画布中,预览显示 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,它位于我的框架搜索路径中。将应用程序构建到模拟器和设备都成功并毫无问题地使用我的框架,它只是无法构建的画布预览。

如果我点击Try again,Xcode 会告诉我Build Succeeded,但画布预览窗口继续只显示未找到框架的错误。

有没有其他人经历过这个/知道潜在的修复?

【问题讨论】:

  • 尝试将该框架添加到target/Build Rules/<linking-page>下的测试目标中。
  • @fabian 不太清楚我知道你在说什么......但是我的测试目标还包括框架,构建并成功通过测试
  • 嗯,那是别的东西。我只有两种情况,我必须通过将这些框架添加到 Build Phases/Link Binary With Libraries 来将依赖项添加到同一个 Xcode 项目 中不相关的 Test Targets 以使预览构建没有错误。
  • 你搞定了吗?
  • 这可能与您的预览构造函数有关,对吗?

标签: ios swift xcode swiftui beta


【解决方案1】:

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

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

我希望这对某人有所帮助

【讨论】:

  • 再好不过了,换成$(TARGET_NAME:c99extidentifier)
【解决方案2】:

终于明白了!

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

我的构建设置有这样的Framework Search Paths 设置:

../path/to/my/framework

当我通常构建我的项目时,它运行良好,它会找到框架。所以似乎默认情况下我的构建脚本是从我的项目目录运行的。

当我尝试为 SwiftUI 构建时,它一定是从我的根项目目录之外进行的,因此相对框架路径不再正确,我得到了问题中显示的错误。

将框架搜索路径更新为(相对较少的?)路径,如下所示:

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

这样做是为了找到框架。现在我可以成功构建项目,并且我的 SwiftUI 画布按应有的方式更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 2019-11-08
    • 2010-12-13
    • 2019-10-20
    • 2015-03-01
    • 2020-06-15
    • 2022-08-10
    • 2019-12-08
    相关资源
    最近更新 更多