我已经经历了“无声”应用程序崩溃已经有一段时间了。这是相当可重复的,并且在 SwiftUI 中从一个屏幕转换到另一个屏幕时会发生:
ZStack {
switch(router.currentScreen) {
case .screenA:
ScreenA()
case .screenB:
ScreenB()
}
}
.animation(.easeOut(duration: 0.5), value: router.currentScreen)
*注意 - 当从屏幕 A 转到屏幕 B 时,并非每次都会发生这种情况。但是当应用程序崩溃时,总是从屏幕 A 转到屏幕 B 时发生,所以问题不在于上面的代码 - 我'我只是将其包含在上下文中。问题是 Xcode 中没有断点命中,没有堆栈跟踪,并且控制台中没有输出。如果我在连接到调试器时运行,我会收到此错误:
Lost connection to the debugger. Domain: IDEDebugSessionErrorDomain Code: 22
User Info: {
DVTErrorCreationDateKey = "2024-03-25 19:04:52 +0000";
IDERunOperationFailingWorker = DBGLLDBLauncher;
}
如果我没有连接到调试器,应用程序就会像我说的那样死掉。我无法在任何地方找到崩溃的任何记录,所以我不知道为什么或什么代码导致了它。
我尝试过的:
我还能做什么来找出我的应用程序崩溃的原因???
您可能想尝试地址消毒剂。这通常可以帮助识别这些奇怪的崩溃。您可以通过单击顶部栏上的方案并选择“编辑方案”来找到它。
有关如何使用它的更多信息可以在这里找到: https://developer.apple.com/documentation/xcode/diagnosing-memory-thread-and-crash-issues-early