xcode 12.4升级导致的objc内存和线程崩溃
Posted
技术标签:
【中文标题】xcode 12.4升级导致的objc内存和线程崩溃【英文标题】:Objc memory and threading crash caused by xcode 12.4 upgrade 【发布时间】:2021-04-19 15:35:36 【问题描述】:在过去的几周里,我一直在尝试解决一个看似随机出现的崩溃问题。我相信这与使用 12.3 中的 xcode 12.4 创建的构建相吻合。我的同步操作开始崩溃,内存中出现EXC_BAD_ACCESS
崩溃。
我正在使用 NSOperationQueue。我尝试过使用僵尸对象,但因为错误出现在 block
中,所以我看不到它们。
我的线程如下所示:
队列视图显示developerSubmittedBlockToNSManagedObjectContextPerform
。
有人对可能导致问题的原因提出建议吗?或者其他方法来追踪它?谢谢
【问题讨论】:
也许是 TSAN:developer.apple.com/documentation/xcode/… 谢谢,我以前没有读过这个工具。我试试看 【参考方案1】:对于任何可能遇到类似问题的人,我们最终将问题归结为数据库链接的核心数据问题。
我们的数据库实体之间缺少一些反向关系。主要理论是,由于不存在关系,系统将解除分配上下文。这将引发无用的线程问题。
这些关系多年来一直处于这种状态,我们认为在最近的 excode 更新中,内存管理系统可能已经更新,从而暴露了问题。
【讨论】:
以上是关于xcode 12.4升级导致的objc内存和线程崩溃的主要内容,如果未能解决你的问题,请参考以下文章
为 Xcode 项目创建单元测试会导致错误:显示最近的消息:-1:未定义符号:_OBJC_CLASS_$_FBSDKCodelessIndexer
Xcode 12.4 在 Ios 15 上是不是有解决方法?
不知道如何在 SwiftUI (Xcode 12.4) 中打开地图