【问题标题】:App crashes when UIView is added to views hierarchy but only in production builds (not in debug)将 UIView 添加到视图层次结构时应用程序崩溃,但仅在生产构建中(而不是在调试中)
【发布时间】:2023-03-11 22:40:01
【问题描述】:

我遇到了一个很难调试的奇怪错误:

  • 我正在创建复杂的UIView(特别是UIScrollView),其中包含许多子视图,然后我将其添加到willRotateToInterfaceOrientation 中的视图层次结构中
  • 调试时一切正常
  • 当编译运行并通过 TestFlight 安装时,它会崩溃。在设备上未找到有关此崩溃的崩溃日志!
  • 视图的创建在生产构建中不会导致崩溃(通过反复试验验证),应用程序仅在添加到 superview 时才会崩溃。

具体情况如下:app是键盘扩展写的是Swift,我提前创建了纵向和横向版本的键盘。在willRotateToInterfaceOrientation 中,我从其超级视图中删除了显示的键盘版本并添加了另一个。这在调试模式下工作正常。在生产中,横向和纵向都可以很好地显示。只有在旋转期间用另一个替换一个会导致崩溃(总是)。

有人遇到过类似的情况吗?关于如何有效调试或可能导致它的任何想法?

【问题讨论】:

  • 尝试在目标的构建设置中将 Swift 编译器优化更改为无。
  • 您收到客户报告的崩溃了吗?您是否尝试连接 lldb 以查看发生了什么?如果您无法使用 lldb 进行重现,请使用 crashlytics 之类的工具来捕获字段中的崩溃日志

标签: ios debugging uiview ios-keyboard-extension


【解决方案1】:

这是我的应用程序中发生的事情,也许有人会发现它有用:

崩溃是由于将许多视图添加到层​​次结构中造成的。可能它不适合内存或类似的东西。

奇怪的是它不会在调试模式下发生。另一个奇怪的事情是,当我 700 个视图不会导致崩溃,但是从层次结构中删除这 700 个并添加另一个 700 确实会导致崩溃......

【讨论】:

    猜你喜欢
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 2015-06-10
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多