com.bugsplat.unitypackage provides crash and exception reporting for Unity projects. BugSplat provides you with invaluable insight into the issues tripping up your users. Our Unity integration collects screenshots, log files, exceptions, and Windows minidumps so that you can fix bugs and deliver a better user experience.
openupm add com.bugsplat.unity
com.bugsplat.unityyou'll have the opportunity to import a sample project that's fully configured to post error reports to BugSplat. Click here if you'd like to skip the sample project and get straight to the usage instructions.
To import the sample, click the carrot next to Samples to reveal the my-unity-crasher sample. Click Import to add the sample to your project.
Importing the Sample
In the Project Assets browser, open the Sample scene from
Samples > BugSplat > Version > my-unity-crasher > Scenes.
Samples > BugSplat > Version > my-unity-crasherto reveal the BugSplatOptions object. Click BugSplatOptions and replace the value of database with your BugSplat database.
Finding the Sample
Click Play and click or tap one of the buttons to send an error report to BugSplat. To view the error report, navigate to the BugSplat [Dashboard] (https://app.bugsplat.com/v2/dashboard) and ensure that you have the correct database selected.
Running the Sample
BugSplat's Unity integration is flexible and can be used in a variety of ways. The easiest way to get started is to attach the
BugSplatManagerMonobehaviour to a GameObject.
BugSplatManagerneeds be initialized with a
BugSplatOptionsserialized object. A new instance of
BugSplatOptionscan be created through the Asset create menu.
BugSplat Create Options
Configure fields as appropriate. Note that if Application or Version are left empty,
BugSplatwill by default configure these values with
Finally, provide a valid
BugSplat Manager Configured
If your application requires special configuration, you may optionally create your own script to manage and instantiate
BugSplat. To do so, create a new script and attach it to a GameObject. In your script, add a using statement for BugSplatUnity.
Next, create a new instance of
BugSplatpassing it your
Application.versionfor application and version respectively.
var bugsplat = new BugSplat(database, Application.productName, Application.version);
You can set the defaults for a variety of properties on the
BugSplatinstance. These default values will be used in exception and crash posts. Additionally, you can tell BugSplat to capture a screenshot, include the Player.log file, and include the Editor.log file when an exception is recorded.
bugsplat.Description = "description!";
bugsplat.Email = "[email protected]";
bugsplat.Key = "key!";
bugsplat.User = "Fred";
bugsplat.CaptureEditorLog = true;
bugsplat.CapturePlayerLog = false;
bugsplat.CaptureScreenshots = true;
Alternatively, a new instance of BugSplat can be created with
var bugsplat = BugSplat.CreateFromOptions(bugSplatOptions);
First, find your BugSplat instance. For example, using
var bugsplat = FindObjectOfType<BugSplatManager>().BugSplat;
You can send exceptions to BugSplat in a try/catch block by calling
throw new Exception("BugSplat rocks!");
catch (Exception ex)
The default values specified on the instance of
BugSplatcan be overridden in the call to
Post. Additionally, you can provide a
Postthat will be invoked with the result once the upload is complete.
var options = new ReportPostOptions()
Description = "a new description",
Email = "[email protected]",
Key = "a new key!",
User = "Barney"
static void callback()
Debug.Log($"Exception post callback!");
StartCoroutine(bugsplat.Post(ex, options, callback));
You can also configure a global
LogMessageRecievedcallback. When the BugSplat instance recieves a logging event where the type is
Exceptionit will upload the exception. Note that the
BugSplatManagercan be configured to register this callback at startup.
Application.logMessageReceived += bugsplat.LogMessageReceived;
BugSplat can be configured to upload Windows minidumps created by the
UnityCrashHandler. BugSplat will automatically pull Unity Player symbols from the Unity Symbol Server. If your game contains Native Windows C++ plugins,
.pdbfiles in the
Assets/Plugins/x86_64folders will be uploaded automatically by BugSplat's PostBuild script and used in symbolication.
To enable uploading of plugin symbols, generate a Client ID and Client Secret on the BugSplat Integrations page. Add your Client ID and Client Secret to the
BugSplatOptionsobject you generated in the Configuration section. Once configured, plugins will be uploaded automatically the next time you build your project.
PostAllCrashescan be used to upload minidumps to BugSplat. We recommend running
PostMostRecentCrashwhen your game launches.
Each of the methods that post crashes to BugSplat also accept a
MinidumpPostOptionsparameter and a
callback. The usage of
callbackare nearly identically to the
ExceptionPostOptionsexample listed above.
You can generate a test crash on Windows with any of the following methods.
In order to use BugSplat in a Universal Windows Platform application you will need to add some capabilities to the
Package.appxmanifestfile in the solution directory that Unity generates at build time.
In order to report exceptions and upload log files you will need to add the
To upload minidumps created on Windows you will need to add the
Additionally, we found there were some restricted capabilities that were required in order to generate minidumps. Please see this Microsoft document that describes how to configure your system to generate minidumps for UWP native crashes.
To upload minidumps from
%LOCALAPPDATA%\CrashDumpsyou will also need to add the
broadFileSystemAccessrestricted capability. To add access to the file system you will need to add the following to your
<Package xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" ... >
Capabilitiessection add the
<rescap:Capability Name="broadFileSystemAccess" />
A few settings must be changed in order to capture function names and line numbers in a WebGL exception report. Open File > Build Settings and switch the platform to WebGL and check Development Build.
Unity Build Settings Menu
Click the button that says Player Settings, highlight the Player section. Under Publishing Settings, select Full With Stacktrace.
Unity Player Publishing Settings
Please note that Unity does not recommend shipping development builds and thus this configuration is not recommended for applications in production.