背景

电脑升级MacOS 26.0,新增了一个SDK后,Xcode26 Beta5和Beta6,编译项都报错,提示:Assertion failed: (it != _dylibToOrdinal.end()), function dylibToOrdinal, file OutputFile.cpp, line 5196.

排查过程

  1. 在StackOverFlow上有看到说ENABLE_DEBUG_DYLIB=NO,尝试后无效果
  2. Xcode 26 Link Error中看到,Apple官方人员的回复,要添加-Xlinker -dead_strip -Xlinker -allow_dead_duplicates.

解决办法

通过 Other Linker Flags 修改

进入 Target 的 Build Settings 标签:
选中 Target → Build Settings → 搜索 Other Linker Flags。
手动修改链接参数:
点击 Other Linker Flags,首先移除

1
2
-ld64 
-ld_classic

然后添加

1
2
3
4
-Xlinker 
-dead_strip
-Xlinker
-allow_dead_duplicates

最终解决了问题。

参考