question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Kermit Crashlytics or Bugsnag

See original GitHub issue

I’m trying to follow the instructions on https://github.com/touchlab/Kermit/pull/177 for integrating Kermit Crashlytics, but my builds now always fail with this error message:


Showing Recent Messages
> Task :shared:linkDebugFrameworkIos

e: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld invocation reported errors



The /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld command returned non-zero exit code: 1.

output:

Undefined symbols for architecture arm64:

  "_OBJC_CLASS_$_FIRStackFrame", referenced from:

      objc-class-ref in result.o

  "_OBJC_CLASS_$_FIRExceptionModel", referenced from:

      objc-class-ref in result.o

  "_OBJC_CLASS_$_FIRCrashlytics", referenced from:

      objc-class-ref in result.o

ld: symbol(s) not found for architecture arm64



> Task :shared:linkDebugFrameworkIos FAILED

Is there anything else I’m missing? I’m using Kermit version “1.0.0-rc4”

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Reactions:2
  • Comments:5

github_iconTop GitHub Comments

2reactions
kpgalligancommented, Oct 25, 2021

To follow up on that, the issue is that including Firebase in a dynamic library framework is problematic. This is less of a Kotlin thing than an Xcode framework thing.

https://github.com/firebase/firebase-ios-sdk/blob/master/docs/firebase_in_libraries.md

For static frameworks, we’re providing a stub binary you can link against so the linker is happy for testing builds. For dynamic frameworks, the only real solution would be to pull in firebase itself, which we’d rather avoid.

I’m still thinking through this, but for now, using Kermit’s Crashlytics support requires using static frameworks. To use dynamic, you’d need to implement a Crashlytics logger from Objc/Swift and pass it in. Not ideal, of course, but it’s not too difficult. Hopefully we’ll have something more user friendly soon.

1reaction
kpgalligancommented, Oct 27, 2021

The Kotlin framework needs to be static.

iosTarget("ios") {
        binaries {
            framework {
                baseName = "shared"
                isStatic = true
            }
        }
    }
Read more comments on GitHub >

github_iconTop Results From Across the Web

Kermit/README.md at main - Bugsnag - GitHub
Kermit Crash Logging - Bugsnag. With the kermit-bugsnag module, you can setup kermit to automatically send bread crumbs and crash reports to Bugsnag....
Read more >
Bugsnag vs Crashlytics | What are the differences? - StackShare
Bugsnag can be classified as a tool in the "Exception Monitoring" category, while Crashlytics is grouped under "Mobile Error Monitoring". Some of the...
Read more >
Rick Clephas on Twitter: "Who wants nice Kotlin crash reports ...
I have got something working for Firebase Crashlytics, Bugsnag and Sentry. ... Kermit by Touchlab is a Kotlin Multiplatform centralized logging utility.
Read more >
Kermit and Crashlytics - Touchlab
Kermit Crashlytics integration on iOS uses cinterop to talk to the native client. Crashlytics itself needs to be added and linked in your...
Read more >
Bugsnag vs Crashlytics Comparison - GetApp
Bugsnag provides software development teams with an automated crash detection platform for their web and mobile applications.... ... Mobile developers have no ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found