gpt4 book ai didi

swift - CLSLogv 日志不会出现在 Crashlytics 中

转载 作者:行者123 更新时间:2023-11-28 07:32:34 26 4
gpt4 key购买 nike

它是一个 Ionic 应用程序,其中一些代码是用 native 编写的。它的用途cordova-plugin-firebase用于记录 Crashlytics。

在 iOS 的 native 部分,我们也在尝试使用 Crashlytics 来启用日志记录。但是,无论我尝试什么,使用 CLSLogv 发送的日志都不会在仪表板中显示。

这是我的代码。

@objc(ImageUpload) class ImageUpload : CDVPlugin {
var backgroundTask: UIBackgroundTaskIdentifier = UIBackgroundTaskInvalid

//https://docs.fabric.io/apple/crashlytics/enhanced-reports.html#custom-logging-in-swift
private func sendErrorToCrashlytics(error: String) {
NSLog("Error in send error function is \(error)")
CLSLogv("%@", getVaList([error]))
}

@objc(imageUpload:)
func imageUpload(command: CDVInvokedUrlCommand) {
registerBackgroundTask()
func execute() {
let db = SQLiteDatabase()
var recToUpLoad: PayloadModel? = nil
while(toCheck) {
do {
let record = try db.readValues() // THIS METHOD THROWS EXCEPTION
} catch Exceptions.SQLiteError(let error) {
self.sendErrorToCrashlytics(error: error) // IT COMES HERE AFTER EXCEPTION
}
}
}
DispatchQueue(label: "imageUploadPlugin",qos: .background).async
{
execute()
}
}
}

但是 CLSLogv 在 Crashlytics 中根本不可见。但是当我做 Crashlytics.sharedInstance().throwException()
,我可以在仪表板中看到它。

异常(exception)是enum

enum Exceptions: Error {
case SQLiteError(message: String)
case JSONError(message: String)
}

最佳答案

希望对大家有所帮助。不知何故,我无法让 CLSLogv 工作。我最终创建了一个 NSError 对象并将其记录在 Crashlytics 的 catch block 中。

catch Exceptions.SQLiteError(let error) {
let userInfo = [NSLocalizedDescriptionKey: error.message, "query": error.query]
let errorObj = NSError(domain: "sqlite", code: 400, userInfo: userInfo)
Crashlytics.sharedInstance().recordError(errorObj)
}

关于swift - CLSLogv 日志不会出现在 Crashlytics 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54266187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com