{"id":29563673,"url":"https://github.com/bugsnag/bugsnag-kotlin-multiplatform","last_synced_at":"2025-07-29T11:04:48.837Z","repository":{"id":298765979,"uuid":"946580644","full_name":"bugsnag/bugsnag-kotlin-multiplatform","owner":"bugsnag","description":"Error monitoring \u0026 exception reporter for Kotlin with Multiplatform support","archived":false,"fork":false,"pushed_at":"2025-07-23T09:10:49.000Z","size":1135,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":14,"default_branch":"next","last_synced_at":"2025-07-23T10:27:17.678Z","etag":null,"topics":["android","bugs","bugsnag","capture-errors","crash","debug","debugging-tool","error-handling","error-monitoring","error-reporting","ios","javascript","kmp","kotlin","multiplatform","notifier","platforms"],"latest_commit_sha":null,"homepage":"https://docs.bugsnag.com","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bugsnag.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-11T11:10:39.000Z","updated_at":"2025-07-23T09:10:52.000Z","dependencies_parsed_at":"2025-06-12T21:03:53.170Z","dependency_job_id":"d3b499d5-99a3-4163-8409-ccd3a491233e","html_url":"https://github.com/bugsnag/bugsnag-kotlin-multiplatform","commit_stats":null,"previous_names":["bugsnag/bugsnag-kotlin-multiplatform"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/bugsnag/bugsnag-kotlin-multiplatform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bugsnag%2Fbugsnag-kotlin-multiplatform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bugsnag%2Fbugsnag-kotlin-multiplatform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bugsnag%2Fbugsnag-kotlin-multiplatform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bugsnag%2Fbugsnag-kotlin-multiplatform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bugsnag","download_url":"https://codeload.github.com/bugsnag/bugsnag-kotlin-multiplatform/tar.gz/refs/heads/next","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bugsnag%2Fbugsnag-kotlin-multiplatform/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267676966,"owners_count":24126304,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","bugs","bugsnag","capture-errors","crash","debug","debugging-tool","error-handling","error-monitoring","error-reporting","ios","javascript","kmp","kotlin","multiplatform","notifier","platforms"],"created_at":"2025-07-18T18:36:39.766Z","updated_at":"2025-07-29T11:04:48.797Z","avatar_url":"https://github.com/bugsnag.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://www.bugsnag.com/platforms/\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://assets.smartbear.com/m/3dab7e6cf880aa2b/original/BugSnag-Repository-Header-Dark.svg\"\u003e\n      \u003cimg alt=\"SmartBear BugSnag logo\" src=\"https://assets.smartbear.com/m/3945e02cdc983893/original/BugSnag-Repository-Header-Light.svg\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n  \u003ch1\u003eError monitoring \u0026amp; exception reporter for Kotlin with Multiplatform support\u003c/h1\u003e\n\u003c/div\u003e\n\nDetect crashes in your applications using Kotlin Multiplatform: collecting diagnostic information and immediately notifying your development team, helping you to understand and resolve issues as fast as possible.\n\n## Beta SDK\n\nThis SDK is still in beta but builds upon on our existing [bugsnag-android](https://github.com/bugsnag/bugsnag-android/), [bugsnag-cocoa](https://github.com/bugsnag/bugsnag-cocoa) and [bugsnag-js](https://github.com/bugsnag/bugsnag-js) SDKs. As such it can be considered stable and safe for use in production, but possibly missing features in the Kotlin common layer that are available in the platform-specific SDKs. We are working to add more features to the common layer, but if you need a specific feature, please [open an issue](https://github.com/bugsnag/bugsnag-kotlin-multiplatform/issues/new?template=feature_request.md).\n\n## Installation\n\nAdd `bugsnag-kmp` to your `build.gradle.kts` file:\n```kotlin\ndependencies {\n    implementation(\"com.bugsnag:bugsnag-kmp:+\")\n}\n```\n\nIn your Xcode project add `bugsnag-cocoa` as a Swift Package Manager (recommended) or other project dependency. See our online docs for instructions: https://docs.bugsnag.com/platforms/ios/#installation.\n\n## Basic configuration\n\nThe `Bugsnag` client should be initialized as early as possible in your application lifecycle. On Android this is typically in the `onCreate` method of your `Application` class, while on iOS this is typically in the `didFinishLaunchingWithOptions` method of your `AppDelegate` class, or in the `init` method of your `App` class. Since we have Kotlin Multiplatform support, you can share most of your configuration code:\n\n```kotlin\n// BugsnagStartup.kt\nimport com.bugsnag.kmp.Bugsnag\nimport com.bugsnag.kmp.Configuration\n\nfun startBugsnag(configuration: Configuration) {\n   // common configuration here\n   configuration.addMetadata(\"App\", \"multiplatform\", true)\n   Bugsnag.start(configuration)\n}\n```\n\n`Bugsnag.start` should still be called in a platform-specific location:\n\n```kotlin\n // don't accidentally import 'com.bugsnag.android.Configuration' if you want common configuration\nimport com.bugsnag.kmp.Configuration\n\nclass MyApp : Application() {\n    override fun onCreate() {\n        super.onCreate()\n        startBugsnag(Configuration(this, \"your-api-key\"))\n    }\n}\n```\n\n```swift\n@main\nstruct iOSApp: App {\n   init() {\n      BugsnagStartupKt.startBugsnag(configuration: Bugsnag_kmpConfiguration(apiKey: \"your-api-key\"))\n   }\n}\n```\n\n## Enabled error types\n\nThe `Bugsnag` client can be configured to ignore certain types of errors. By default, all error types are enabled. You can enable or disable error types by calling the `setEnabledErrorTypes` method on the `Configuration` object.\nIn the `bugsnag-kmp` each platform-specific error type can be configured independently as part of the common source set:\n\n```kotlin\nimport com.bugsnag.kmp.Configuration\n// bugsnag-kmp includes a convenience extension function to set enabled error types in a lambda\nimport com.bugsnag.kmp.setEnabledErrorTypes\n\nconfiguration.setEnabledErrorTypes {\n   iosOoms = false\n}\n```\n\n## Showing full stacktraces\n\nTo see fully symbolicated Kotlin and native stacktraces in your dashboard, we recommend using the [bugsnag-cli](https://docs.bugsnag.com/platforms/android/cli/) tool. This will find and upload the symbol files for each platform in your Kotlin Multiplatform project:\n\n```bash\n# upload the symbol files for the current build\nbugsnag-cli upload android-aab app --api-key=your-api-key\nbugsnag-cli upload xcode-archive iosApp --api-key=your-api-key \n```\n\nIf your API-key is defined in the `AndroidManifest.xml` and `Info.plist` files, you can omit the `--api-key` argument. The CLI will automatically find the API key in your project files. These steps are typically added to your CI/CD pipeline, so that the symbol files are uploaded automatically after each build.\n\n## Support\n\n* [Search open and closed issues](https://github.com/bugsnag/bugsnag-kmp/issues?utf8=✓\u0026q=is%3Aissue) for similar problems\n* [Report a bug or request a feature](https://github.com/bugsnag/bugsnag-kmp/issues/new)\n\n## Contributing\n\nAll contributors are welcome!\n\n## License\n\nThe BugSnag Kotlin SDK is free software released under the MIT License. See the [LICENSE](https://github.com/bugsnag/bugsnag-kmp/blob/main/LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbugsnag%2Fbugsnag-kotlin-multiplatform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbugsnag%2Fbugsnag-kotlin-multiplatform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbugsnag%2Fbugsnag-kotlin-multiplatform/lists"}