getsentry / sentry-unreal

Unreal Engine
https://docs.sentry.io/platforms/unreal/
MIT License
81 stars 30 forks source link
crash-reporting hacktoberfest tag-production unreal-engine


Sentry SDK for Unreal Engine =========== This project is an SDK for Unreal Engine that wraps different Sentry's SDKs for both desktop and mobile. Also, it [has a stable support for the Unreal Engine crash reporter](https://docs.sentry.io/platforms/unreal/setup-crashreport/). ## Downloads The SDK can be downloaded from the [Releases] page, which also lists the changelog of every version, or from the [UE Marketplace] page via Epic Games launcher. [releases]: https://github.com/getsentry/sentry-unreal/releases [UE Marketplace]: https://www.unrealengine.com/marketplace/en-US/product/sentry-01 If manual download from the [Releases] page is a preferred way for plugin integration using the package with the `github` suffix in its name is recommended. ## Supported Platforms and Unreal Engine version The SDK currently supports and is tested on the following platforms: - Windows - macOS - Linux - Android - iOS The SDK compiles with three latest engine versions. ## Known Limitations - On all platforms captured crashes are uploaded to Sentry only after relaunching the crashed app since the in-process handler cannot do this within the same session. The only exceptions are Windows (if using the GitHub package) and Linux for which the out-of-process crashpad handler is used and crashes are uploaded immediately. - To automatically capture crashes in Windows game builds that were made using engine versions prior to UE 5.2, the [Crash Reporter has to be configured](https://docs.sentry.io/platforms/unreal/setup-crashreport/) first. - Using UGS binaries requires tagging of files to ensure the crashpad_handler.exe is present. For inclusion in build graph, you'd want something like this: ``` ``` - In UE 5.2 or newer game log attached to crashes captured with `sentry-native` integration instead of [crash reporter](https://docs.sentry.io/platforms/unreal/setup-crashreport/) could be truncated. This is caused by current `crashpad` behavior which sends crashes to Sentry right away while UE is still about to write some bits of information to the log file. - Only crash events captured on Android contain the full callstack. Events that were captured manually won't have the native C++ part there. - On Linux `sudo apt-get install libc++-dev libcurl-dev` is required to install the `Crashpad` dependencies. This list may vary depending on your Linux distro. See the [Crashpad documentation](https://chromium.googlesource.com/crashpad/crashpad/+/refs/heads/main/doc/developing.md#prerequisites) for more details. - On Windows/Linux if crash event was captured during the garbage collection the `BeforeSendHandler` will not be invoked. ## Development Please see the [contribution guide](./CONTRIBUTING.md). ## Resources * [![Documentation](https://img.shields.io/badge/documentation-sentry.io-green.svg)](https://docs.sentry.io/platforms/unreal/) * [![Discussions](https://img.shields.io/github/discussions/getsentry/sentry-unreal.svg)](https://github.com/getsentry/sentry-unreal/discussions) * [![Discord Chat](https://img.shields.io/discord/621778831602221064?logo=discord&logoColor=ffffff&color=7389D8)](https://discord.gg/PXa5Apfe7K) * [![Stack Overflow](https://img.shields.io/badge/stack%20overflow-sentry-green.svg)](http://stackoverflow.com/questions/tagged/sentry) * [![Twitter Follow](https://img.shields.io/twitter/follow/getsentry?label=getsentry&style=social)](https://twitter.com/intent/follow?screen_name=getsentry)