Swift/Objective-C 崩溃:调试时交换了 class 个初始值设定项

Swift/Objective-C Crash: Swapped class initializers while debugging

总结

我在工作中的 Xcode 项目中遇到了一个严重的问题,对于如何进一步缩小或解决此问题的任何建议、提示或评论,我将不胜感激!

自一两周以来,我们的项目在 Swift classes 初始化或使用它们的类型的随机位置调试时(在模拟器和设备上)崩溃。

例子

这是它的外观示例:

另一个示例,其中 super.init 调用失败,因为调试器突然将父 class 混淆为不同类型:

我们的尝试

到目前为止我们注意到并尝试过的事情:

附加信息

关于我们项目的一些事情:

结尾的想法

我怀疑我们可能会意外触发某种编译器优化错误,这与我们混合的 Swift 和 Objective-C 代码库有关。

如果有人知道如何缩小崩溃的范围,或者看到了这些症状,我将不胜感激。现在它阻止我们进行任何开发。

我们无法确定问题的根本原因,但是当我们在应用方案中禁用测试计划时,我们设法避免了 crash/bug。当我们创建一个新的应用程序目标并且一切正常时,我们注意到了这一点。重新配置目标和方案后,添加 UI-测试计划后问题再次出现。

也许这个策略可以帮助遇到类似问题的任何人。