Dart Symbols
If you build your Flutter application with debug symbols stripped (--strip-debug-info
) you will need to upload the generated symbol files to see the source file, line number and method in stacktraces on your dashboard.
Splitting debug info will produce a directory named app-debug-info
containing one .symbols
file for each architecture and platform you have targeted. Each of these files needs to be uploaded to the POST /dart-symbol, along with a unique build identifier.
Extracting build identifiers
The BugSnag CLI can be used to extract this identifier from your symbol files and upload it to the appropriate BugSnag endpoint in one command. See the BugSnag CLI guide for installation and a full list of options.
To integrate directly with the upload API, use the following techniques to obtain the build identifier required for the upload:
Android builds
Use the readelf
tool to extract the “Build ID” from each generated .symbols
file:
If readelf
is not globally installed on your platform, you can find a suitable version (sometimes named llvm-readelf
) in your NDK toolchain.
Use the hexadecimal string produced by this command (such as 0a70ca6d63ab03282a01eabf4f5f33e7
) for the buildId
parameter in your request. This should be repeated for each architecture you are supporting.
iOS builds
The build identifier for iOS is the Mach-O UUID generated for the binary containing your app’s Dart code. This can be extracted using Xcode’s dwarfdump
as follows:
Use the UUID produced by this command (such as 2B9C4665-56F7-38FD-923E-BBC2F219EDA6
) for the buildId
parameter in your request. This should be repeated for each architecture you are supporting.
Example cURL
Symbolication guide
See our symbolication guide for a higher-level overview of integrating uploads into your build systems to see full stacktraces for all your releases.