【问题标题】:Xcode/iOS App freezing, how to track such errorsXcode/iOS App 冻结,如何跟踪此类错误
【发布时间】:2020-09-21 21:09:35
【问题描述】:

我有时会冻结应用程序,我不知道问题的根源是什么。 它很少发生,但会发生。我考虑如何跟踪此类问题 我有来自 firebase 的 crashlytics 但没有错误,因为冻结是我想线程可能是一些死锁或无限循环的东西。

有没有办法跟踪这些事情? 应用程序冻结和不活动的原因可能是什么(它是 SwiftUI 应用程序)? 是否有可能跟踪/分析设备上安装的应用程序(未通过 Xcode 连接)并将 Instrument 中可用的信息发送到诸如 firebase 控制台或其他 3rd 方工具之类的东西。

更新

我想我没有指出重要的事实。 它绝对不会冻结 UI 几秒钟,但确实需要杀死应用程序并重新启动。

【问题讨论】:

    标签: ios xcode debugging


    【解决方案1】:

    可能有一些繁重的进程会锁定您的主线程,因此它会冻结您的 UI。

    您使用Instruments 跟踪问题、性能、泄漏等。

    有示例主题:

    还有像

    这样的 WWDC 视频

    【讨论】:

    • 如果应用程序通过 TestFlight、Firebase 控制台或其他工具在测试代码上运行,我可以在没有 Xcode 的情况下跟踪这些东西吗?
    • 不调试就很难追踪。监控工具可以帮助您查看一些基本指标。例如:Firebase Performance Monitoring.
    【解决方案2】:

    我以前经历过一些这些奇怪的行为。其背后的主要原因是一项阻塞主线程使其无响应的任务。暂停应用程序并检查堆栈跟踪。还要确保您的所有 UI 操作都在主线程上完成。希望这可以帮助!

    【讨论】:

    • 是的,我认为这与线程和一些竞争条件、主线程死锁或无限循环有关。问题是它很少发生,而且在 Xcode 中调试时不会发生。一些测试人员遇到了这种情况,我没有任何日志和提示可能出错的地方。在 SwiftUI 中有很多刷新,很难说是什么原因造成的。
    • 我先一一排除。首先不执行任何流程并从我的 ViewModel 返回硬编码的模拟。
    猜你喜欢
    • 1970-01-01
    • 2021-05-13
    • 2017-08-14
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 2011-07-03
    • 2019-12-01
    • 1970-01-01
    相关资源
    最近更新 更多