dyld: 符号未找到: ___chkstk_darwin

7

在将 Xcode 升级到版本 11.1 (11A1027) 后,我的 iOS 应用程序(MyApp)在开始运行时在 Xcode 中崩溃,并出现以下运行时错误:

dyld:找不到符号:___chkstk_darwin 引用自:/var/containers/Bundle/Application/xxxxxxxxxx/MyApp.app/MyApp 应在:/usr/lib/libSystem.B.dylib 中

macOS 版本:Mojave 10.14.6 (18G103) Xcode 版本:11.1 (11A1027) 目标设备:iPhone 6 Plus 目标设备 iOS 版本:12.4.2

在 Xcode 10.3 中没有任何问题。 非常感谢任何帮助和评论。


我在类似的设置中遇到了同样的问题。使用相同的Xcode版本,针对12.4版本的应用程序。唯一的区别是我针对的是iPhone 8。感觉这可能是由于SDK版本不匹配引起的问题。 - Honeybunch
有更新。我对搭载iOS 13.1.2的iPhone 6S进行了相同的测试,结果完全没有问题。 - s4mt6
4个回答

3
我想我找到了问题所在。我使用CMake生成我的Xcode项目,但由于某种原因,CMake很难在项目上设置Base SDK选项。

Bad Base SDK

如果我手动将基本 SDK 设置为 iOS,它似乎可以成功构建和运行。

Good Base SDK


我刚回复完你的第一条评论,就发现了你的答案。非常感谢你的回答。在Xcode11的项目构建设置中,架构和基础SDK设置看起来都是正确的。由于我没有使用CMake,我可以问一下你如何将你的解决方案应用到Xcode11中吗? - s4mt6
我遇到的问题是,当CMake生成Xcode项目时,它没有正确设置此基本SDK属性。在Xcode 10.3中也存在同样的问题,但Xcode通过报告无法启动应用程序来响应失败。如果即使正确设置了Base SDK字段,您仍然遇到相同的问题,那么似乎我们从不同的角度遇到了相同的问题:( - Honeybunch
我在Xcode11的设置中找到了问题。我的项目包含几个静态库,这些库也会在目标构建期间构建。不知何故,在从v10.3迁移到v11.1后,某些(而非全部)库项目中的目标iOS设置已经被隐式更改为iOS 13.1。这导致了关于某些运行时函数(例如chkstk_darwin)的iOS SDK冲突问题。我不得不手动搜索“受影响”的库项目,并将它们的目标iOS设置更改回12.4。然后在Xcode11中解决了问题。感谢您的回复。非常感谢。 - s4mt6

1

在我的情况下,这个问题是由XCODE 13.2.1版本的错误引起的。然后我将XCODE版本降级到13.1,就可以解决这个问题,我可以运行12.x.x操作系统上的应用程序。


0

对我来说,这是因为应用程序使用的一个库是为较新的iOS版本构建的。将iOS部署目标更改为12.2可以解决崩溃问题。

enter image description here


0

当我在MacOS 10.15上编译带有VLA的C程序,然后在10.13上运行它时,我遇到了这个问题。如果您也遇到了这个问题,请改用malloc()


将部署目标设置为10.13即可解决该问题。 - MaddTheSane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接