当从后台通过应用程序图标返回时,就会发生崩溃。
但是,我在控制台日志中看不到任何详细信息。有信号要终止,但我们找不到信号号码。
<FBApplicationProcess: 0x117bcb930; Maixxxx; pid: 1762> exited abnormally via signal.
Process exited: <FBApplicationProcess: 0x117bcb930; Maixxx; pid: -1> -> <FBApplicationProcessExitContext: 0x17103f820; exitReason: signal; terminationReason: (none)>

再现我的坠机的步骤如下:
由于崩溃只在从背景返回时发生,并且需要输入后台几分钟,所以我无法在带有lldb的调试模式下运行。
我没有使用任何背景特征。
而且,我在“织物的破折号”中没有看到任何坠毁报告。所以我认为信号处理程序也不能被调用?
如何调查这类问题?
发布于 2019-07-08 10:30:09
这些事情可能会很艰难,我从类似的经历中知道。在不了解你的应用程序的情况下,我只能提供提示而没有明确的答案,但也许这对你有帮助。
尽管有两种尝试“捕获”进程的方法,但使用print直接日志记录的方法却是落后和乏味的。
然而,首先,我要强调,“背景”并不总是一样的,不幸的是,人们使用这个词往往很松散。取决于导致崩溃的状态转换,您可能会运气不佳,必须使用手动日志进行简单的实验。应用程序可以在后台,即不在前台,但仍在运行。在附加调试器时通常是这种情况,否则调试器无法完成它的工作。或者,它们可以被操作系统暂停(甚至终止)。调试器可以防止这种情况,您可能已经知道了。
对你有帮助的两件事是:
我本人还没有遇到过这个问题,但我知道背景问题可能会很棘手。也许这讨论对你也有帮助(我也从那里获取了我的部分信息)。
发布于 2019-07-07 10:59:34
在实际设备上以调试模式运行应用程序。按“主页”按钮将应用程序发送到后台并继续调试。然后,您可以将应用程序带到前台并继续调试,或者在applicationWillEnterForeground上放置一个断点。
发布于 2019-07-12 09:39:25
你不能在真正的设备上调试这个。当调试器被附加时,您的应用程序将永远不会进入真实设备中的后台模式。
您可以尝试在模拟器上调试此功能。无论如何,请检查类属性,并将属性设置为“强”,以确保这不会因为缺少属性而发生。
我读过几个StackOverflow问题,这些问题都有FBApplicationProcess。通常情况下,这是在应用程序启动时缺少数组之类的。
诚挚的问候。
https://stackoverflow.com/questions/56879635
复制相似问题