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

更新Xcode 13.2.1后在iOS 12.5.5版本iPhone 6运行App崩溃:dyld: Symbol not found: ___chkstk_darwin

解决Xcode 13.2.1下iOS 12.5.5设备上因___chkstk_darwin缺失导致的崩溃问题

嗨,我来帮你搞定这个崩溃问题!你遇到的这个报错核心原因很明确:Xcode 13.2.1编译生成的libswift_Concurrency.dylib(Swift并发库)是针对iOS 13.0及以上系统构建的,其中用到了___chkstk_darwin这个符号,但iOS 12.5.5的系统库libSystem.B.dylib里根本没有这个符号,所以App启动时动态链接器(dyld)找不到它直接崩溃了。

下面给你几个可行的解决办法,按推荐程度排序:

方案1:调整编译标记兼容iOS 12(推荐)

这个方案不用改代码也不用降级Xcode,只需要调整项目的编译配置:

  • 打开项目的Build Settings,找到OTHER_SWIFT_FLAGS,点击编辑添加以下两个标记:
    • -Xfrontend -enable-experimental-concurrency
    • -Xfrontend -disable-availability-checking
  • 同时确保你的项目DEVELOPMENT_TARGET设置为iOS 12.0或更低;
  • 如果项目里用到了第三方框架,也要检查这些框架的部署目标是否支持iOS 12,或者给它们也加上同样的编译标记;
  • 最后清理项目缓存(快捷键Cmd+Shift+K),重新构建运行。

方案2:移除Swift Concurrency相关代码/依赖

如果你的App并没有用到Swift的async/await、Task这些并发API,那可能是某个第三方库悄悄引入了Swift Concurrency:

  • 排查项目的依赖库,找到引入libswift_Concurrency.dylib的那个依赖;
  • 要么移除这个依赖,要么替换成不依赖Swift Concurrency的旧版本;
  • 清理缓存后重新构建即可。

方案3:降级Xcode版本

如果上述方案都不适用,你可以考虑降级到Xcode 13.1或者更早的版本——这些版本在编译Swift Concurrency库时,对iOS 12的兼容性更好,不会引入___chkstk_darwin这类仅iOS 13+才有的符号。

配置完成后,记得用你的iPhone 6(iOS 12.5.5)重新测试,应该就能正常启动App了。

内容的提问来源于stack exchange,提问作者PK Chahar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 11:37:30