gpt4 book ai didi

ios - Swift/Objective-C 崩溃 : Swapped class initializers while debugging

转载 作者:行者123 更新时间:2023-12-04 13:50:59 26 4
gpt4 key购买 nike

摘要
我在工作中的 Xcode 项目中遇到了一个严重的问题,对于如何进一步缩小或解决这个问题的任何建议、提示或评论,我将不胜感激!
从一两个星期开始,我们的项目在(在模拟器和设备上)在 Swift 类初始化或使用它们的类型的随机位置进行调试时崩溃。
示例
这是它的外观示例:
The exception with console information

  • 表 View 无法识别 ListSectionHeader 的继承
  • 打印它的类型时,返回一个不同的类
  • .self 的返回类始终是我们 Core.framework 的 Objective-C 类

  • 另一个例子,其中一个 super.init调用失败,因为调试器突然将父类混淆为不同类型:
    enter image description here
  • 有时它会直接崩溃,当 Swift 类用 BAD_EXEC_ACCESS 初始化时

  • 我们的尝试
    到目前为止我们注意到并尝试过的事情:
  • 崩溃在发布版本中消失
  • 启用内存或线程清理程序后,问题就会消失
  • 问题发生在 Xcode 12.4、12.5.1 和 Xcode 13.0
  • 我们启用了“SWIFT_COMPILATION_MODE = Wholemodule”,这让问题消失了一段时间,但在向项目添加更多 Swift 代码后问题又回来了
  • 如果我们添加或删除 Swift 代码,崩溃会移动到不同的类,就像移动了类名和类型的映射表 (??)(此处纯属推测)
  • 到目前为止,我无法在示例项目中重现该问题

  • 附加信息
    关于我们项目的一些事情:
  • 带有一些静态框架的 Xcode 工作区
  • 大多数为Objective-C类的核心框架
  • 仅 Swift 的 UserInterface-Framework 并在许多类中导入 Core-Module
  • 我们所有的框架都是伞形框架的一部分,该框架集成在我们用于调试的测试应用程序中

  • 结束思绪
    我怀疑我们可能会意外触发某种编译器优化错误,这与我们混合使用 Swift 和 Objective-C 代码库有关。
    如果有人对如何缩小崩溃范围有任何想法,或者已经看到这些症状,我将不胜感激。现在它阻止我们进行任何开发。

    最佳答案

    我们无法确定问题的根本原因,但是当我们在应用程序的方案中禁用测试计划时,我们设法避免了崩溃/错误。当我们创建一个新的应用程序目标并且一切正常时,我们注意到了这一点。重新配置目标和方案后,添加UI-test计划后问题再次出现。
    也许这个策略可以帮助任何有类似问题的人。

    关于ios - Swift/Objective-C 崩溃 : Swapped class initializers while debugging,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69462880/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com