AAkira / Napier

Logging library for Kotlin Multiplatform
Apache License 2.0
785 stars 34 forks source link

'KotlinThrowable' is not convertible to 'any Error' #123

Open brahyam opened 4 months ago

brahyam commented 4 months ago

From the docs, for iOS is instructed to use to initialise release antilog:

#else
// Others(Release build)

// init firebase crashlytics
FirebaseApp.configure()

// init napier
NapierProxyKt.releaseBuild(antilog: CrashlyticsAntilog(
    crashlyticsAddLog: { priority, tag, message in
        Crashlytics.crashlytics().log("\(String(describing: tag)): \(String(describing: message))")
},
    crashlyticsSendLog: { throwable in
        Crashlytics.crashlytics().record(error: throwable) // <- ERROR HERE 'KotlinThrowable' is not convertible to 'any Error'
}))
#endif

However using the RELEASE code eg. archiving the app, throws the error: 'KotlinThrowable' is not convertible to 'any Error'

It is easily solvable by adding .asError() to the throwable but the documentation should be updated.

Recommended implementation should be:

#else
// Others(Release build)

// init firebase crashlytics
FirebaseApp.configure()

// init napier
NapierProxyKt.releaseBuild(antilog: CrashlyticsAntilog(
    crashlyticsAddLog: { priority, tag, message in
        Crashlytics.crashlytics().log("\(String(describing: tag)): \(String(describing: message))")
},
    crashlyticsSendLog: { throwable in
        Crashlytics.crashlytics().record(error: throwable.asError())
}))
#endif