Mechanics of Unity Crash HandlingΒΆ

Crashlytics for Unity support is, effectively, a wrapper around the existing Android and iOS crash handlers. The plugin installs a C# exception handler, which forwards caught exceptions to logged exception methods in the native SDK via C#/Objective-C/Java interoperability.

For Android projects, the plugin modifies AndroidManifest.xml, replacing the existing launcher activity with its own. The launcher activity contains a Fabric.with(context, new Crashlytics()) statement, which is necessary to instantiate Fabric. During the build process, a post-build script for Android will submit a build event to the backend.

On iOS, the generated Xcode project contains a run binary that sends the dSYM and build event to the Crashlytics backend. The Fabric API key and kit information are injected into the project’s info.plist.