You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XCode 14.2(M2)IBDesignable预览失效,架构不兼容问题求助

解决M1/M系列Mac上XIB加载架构不兼容的渲染错误

问题描述

加载自定义NSView()的MainMenu.xib时出现架构不兼容错误:

.../Base.lproj/MainMenu.xib Failed to render instance of : dlopen(....app, 0x0001): tried: '/...' (no such file), '....app' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS....app' (no such file), '....app' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64'))

此前M1推出时已有类似问题,常见的LD_RUNPATH_SEARCH_PATHS路径添加方案无效。当前临时解决办法是:打开项目报错后,在Terminal切换到Intel架构再切回Arm架构(保持窗口打开),IB预览恢复正常。该问题属于Xcode回归问题,Intel设备的Xcode 11可正常运行。

永久解决办法

1. 强制Xcode以Arm64架构运行

  • 右键应用程序中的Xcode.app,选择「显示包内容」
  • 进入Contents/Info.plist,添加或修改LSArchitecturePriority数组,将arm64放在首位:
    <key>LSArchitecturePriority</key>
    <array>
        <string>arm64</string>
        <string>x86_64</string>
    </array>
    
  • 保存后重启Xcode,执行Cmd+Shift+K清理项目后重新构建

2. 统一项目架构设置

  • 打开项目Build Settings,搜索Architectures:
    • 将Architectures设置为Standard Architectures (arm64, x86_64)
    • 若存在Valid Architectures选项,添加arm64和x86_64
    • 确保Build Active Architecture Only在Debug模式下设为YES,Release模式下可设为NO

3. 清理Xcode缓存与构建数据

  • 关闭Xcode,删除~/Library/Developer/Xcode/DerivedData目录下的所有内容
  • 在Terminal执行xcodebuild clean命令清理项目构建缓存
  • 重启Mac后重新打开项目构建

4. 检查自定义View的依赖库

如果依赖第三方库,确保这些库已编译为通用架构(arm64 + x86_64),避免仅存在x86_64版本导致架构不兼容。

原因分析

该问题本质是M系列Mac上Xcode的Interface Builder在渲染自定义视图时,错误加载了x86_64架构的应用二进制文件,而非适配arm64架构的版本。临时切换Terminal架构的操作,实际触发了系统架构优先级调整,让IB能正确找到arm64版本的二进制。

内容的提问来源于stack exchange,提问作者Lego Esprit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 05:22:07