func parseCrashFileInternal()

in Sources/CrashReporter2/CrashFileHelper.swift [46:79]


    func parseCrashFileInternal(_ filePath: String) {
        guard let results = LogParser.shared.parser(filePath: filePath) else { return }

        guard let catId = results["catId"],
              let errorId = results["id"],
              let subType = results["sub_type"] else { return }
        
        var mutableResults = results
        mutableResults.removeValue(forKey: "catId")
        mutableResults.removeValue(forKey: "id")
        mutableResults.removeValue(forKey: "sub_type")
        
        if let spanBuilder = CrashReporterOTel.spanBuilder("crashreporter") {
            for (key, value) in mutableResults {
                if "basic_info" == key || "summary" == key || "stacktrace" == key {
                    spanBuilder.setAttribute(key: "ex.\(key)", value: value)
                }
            }

            spanBuilder.setAttribute(key: "t", value: "error")
            spanBuilder.setAttribute(key: "ex.type", value: "crash")
            spanBuilder.setAttribute(key: "ex.sub_type", value: subType)
            spanBuilder.setAttribute(key: "ex.id", value: errorId)
            spanBuilder.setAttribute(key: "ex.catId", value: catId)

            AttributesHelper.setAttributes(spanBuilder)

            let span = spanBuilder.startSpan()
            span.end()
            CrashReporterOTel.forceFlush()

            _ = try? FileManager.default.removeItem(atPath: filePath)
        }
    }