@IBDesignable 预览在 M2 上的 XCode 14.2 下再次损坏?

问题描述 投票:0回答:2

我收到错误:

.../Base.lproj/MainMenu.xib 无法渲染 dlopen(....app, 0x0001) 的实例:尝试:'/...'(没有这样的文件),'....app' (mach-o 文件,但是不兼容的架构(有“x86_64”,需要“arm64”)),“/System/Volumes/Preboot/Cryptexes/OS....app”(没有这样的文件),“.. ..app'(mach-o 文件,但是不兼容的架构(有'x86_64',需要'arm64'))` 加载我的 .xib 时。其中 代表我派生的 NSView 的名称,... 代表我的应用程序名称。

当第一个 M1 处理器上市时,有很多关于此问题或类似问题的报告: (Xcode 12 Apple M1 arm64 - 可设计错误:“错误的架构”)或 (IBDesignable 构建失败)等等。他们中的大多数人都会在“Linking”下的 LD_RUNPATH_SEARCH_PATHS 中添加一些路径。

那里给出的解决方案对我来说都没有帮助,但我找到了一个链接,您可以在其中更改终端应在其下运行的拱门。 看到

部分解决: 现在,打开 .proj 文件后,当我收到此错误时,我打开 Terminal.app,将其切换到 Intel,然后返回 Arm(保持终端窗口打开),瞧,IB 预览正确显示。 在这里查看结果

关于 XCode,这是一种回归,因为在 Intel Xcode 11 下它始终可以正常工作。

有人知道发生了什么事或如何避免这种不便吗?

xcode regression dlopen ibinspectable
2个回答
1
投票

同时我发现消息的最后一部分是

mach-o 文件,但它是一个不兼容的架构(有“x86_64”,需要 ‘arm64’)

是错误消息的重要部分。

这确实像是 XCode 14.3 的回归。我之前编写的解决方法不再适用于最新的操作系统更新,但 Robert Fogash 在

中给出了适合我的解决方案

Xcode 12 Apple M1 arm64 - 可设计错误:“错误的架构”

线程。仅设置 Build Active Architecture Only 标志是不够的,您还应该显式设置调试架构!

这现在是我的工作构建设置。请注意,仍然需要停止并重新启动 XCode 才能生效。


0
投票

使用 Xcode 16 @IBDesignable 再次被破坏。这次是故意的,正如发行说明所述: @IBDesignable 视图已弃用,将不再在 Interface Builder 画布中呈现。 (115873872)

所以苹果并没有修复一个非常有用的功能,而是直接放弃了它。看起来开发人员应该被迫使用 SwiftUI,因为新的 @Preview 大部分时候都可以工作(也不是所有时候)。而使用Appkit则更加困难。例如,我无法成功地将它用于使用 init(coder:...) 初始化的 NSView!

© www.soinside.com 2019 - 2024. All rights reserved.