ios - Firebase crashlytics 没有告诉我 swift 的确切崩溃问题
问题描述
我已经在堆栈上阅读了很多关于此的问题,但是有没有解决方案来解决此问题以获取崩溃报告的缺失部分?
我知道这些崩溃是由 nil 或未包装选项或其他原因引起的,但来自 objc 的崩溃要好得多:
我的项目基于 objetive-c(几年前开始),但新的主要部分是用 swift 编写的。来自 objc 部分的所有崩溃都非常详细,但来自 swift 部分的崩溃则没有。
所以问题是,我将如何获得可读的崩溃报告而不是 EXC_BREAKPOINT 0x00000001028817ac
解决方案
对于这种情况,我建议在应用程序中添加用户行为的高级分析,然后尝试重复与用户相同的步骤。这将有助于找到此类崩溃的根源。我可以分享代码,您可以在此基础上在应用程序的屏幕上添加必要的功能:
import Foundation
import Crashlytics
class EventLogger {
/// Log a handled non-fatal exception
class func logException(_ exception: NSException) {
print("Catched exception: \(exception.debugDescription)")
let frames = exception.callStackSymbols.map { symbol in CLSStackFrame(symbol: symbol) }
Crashlytics.sharedInstance().recordCustomExceptionName(exception.name.rawValue, reason: exception.reason, frameArray: frames)
}
private class func log(_ string: String) {
CLSLogv(string, getVaList([]))
}
class func log(screen: String) {
log("User is located at \(screen) Screen")
}
/// Log a status of feature
class func log(feature: String, status: String) {
log("Feature \(feature) was \(status)")
}
/// Log an event
class func log(event: String) {
log("Event: \(event)")
}
}
并像这里一样实施它:
EventLogger.log(event: "Pressed login button")
崩溃后,您可以准确查看此次崩溃的操作日志
推荐阅读
- python - 将 ndarray 与标量相乘:TypeError:无效的类型提升
- objective-c - macOS app setting.bundle 文件是否与 iPhone app setting.bundle 文件类似?
- javascript - 如何在给定元素 JavaScript 的现有类中添加类?
- c# - 没有内存泄漏或错误,但我的代码速度呈指数级下降 C#
- ios - 能够打印到控制台但不能设置标签文本
- javascript - 修复基础长名称栏 echarts
- python - 将 3D 数组导出到 Excel 工作簿
- kotlin - 与协程一起使用时,地图上的 Kotlin foreach 与迭代键
- python-3.x - 如何同时更新 Python 中的多个变量?
- node.js - 在对话框流中使用对象列表设置上下文作为参数