我有一些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
,但是画布预览窗口继续仅显示未找到框架错误。
有没有其他人经历过此事/知道潜在的解决方法?
答案 0 :(得分:2)
所以我遇到了同样的问题,只是找不到自己的模块...对我来说,问题是因为我有自定义的构建配置,而且它不喜欢自定义的模块名称。解决方案是将模块重命名为与调试相同,然后在 Build Settings> Product Module Name
中发布我希望这对某人有帮助
答案 1 :(得分:0)
终于明白了!
事实证明,找不到该库的原因是因为我使用指向项目目录之外某个位置的相对路径来引用它。
我的构建设置中的Framework Search Paths
设置如下:
../path/to/my/framework
当我正常构建项目时,它运行良好,并且可以找到框架。因此,似乎默认情况下,我的构建脚本是从项目目录运行的。
当我尝试为SwiftUI进行构建时,它一定是在我的根项目目录之外进行的,因此相对框架路径不再正确,并且我得到了问题中显示的错误。
将框架搜索路径更新为这样的路径(相对而言稍微少一点):
$(PROJECT_DIR)/../path/to/my/framework
做到了,所以可以找到框架。现在,我可以成功构建项目并按需更新我的SwiftUI画布了。