Mobile Stack Trace Deobfuscation
Self hosted configuration required to symbolicate and de-minify Mobile Stack Traces
If you make use of LogRocket's mobile SDKs, your self hosted LogRocket installation will ingest Exceptions and Crash Reports that occur in your mobile applications. LogRocket displays captured exceptions, errors, and crashes in the Logs pane of the session replay Developer tab, as well as in Issues. If your application code is minified or obfuscated, you may need to upload debug files from your app build to see decoded symbol names in the associated stack traces.
Configuration
Stack Trace deobfuscation requires a LogRocket self hosted version of at least 21.231.0
. It also requires some additional configuration to run the issue-event-worker
, which processes each stack trace.
Edit your values.yaml
file and add the following configurations.
fileStorage:
buckets:
# Other bucket configurations will already exist. Add the following:
releaseArtifacts: '<YOUR_ORG>-logrocket-release-artifacts'
issueEventWorker:
enabled: true
publish:
enabled: true
bootstrap:
enabled: true
Do a normal helm upgrade --values values.yaml ....
deploy and confirm afterwards that you see the issue-event-worker
pod running without error. This pod contains 2 containers, symbolicator
and issue-event-worker
.
Upload debug files to LogRocket
To upload files you will need to install the LogRocket command line tool (requires version 0.14.0 or above):
npm install -g logrocket-cli
Uploads require an API key. Admins can find the API key in your LogRocket dashboard under Settings > General Settings > Development
.
Once the file(s) are uploaded following the steps below, they will be used for symbolicating and de-minifying incoming stack traces from sessions recorded on the specified release version of your app. Each time a new version of your app is released, the corresponding debug files should be uploaded to LogRocket.
iOS
LogRocket uses the dSYM files generated when an application is built to symbolicate iOS stack traces. When uploading, you must provide a release
identifier that matches your CFBundleVersion. To upload these files for use by LogRocket, use the following command:
logrocket upload-mobile \
--platform ios \
--release="release_identifier" \
--apikey="your:api:key" \
--apihost="your api host url, equivalent to the domains.api value in your values.yaml" \
./path/to/debug/files/myApplication.app.dSYM/
The cli will recursively scan the contents of the provided directory for relevant files and attempt to upload them (the --verbose
flag can be used to see the full list of matching files). Multiple paths can be passed to the command if necessary.
For more information on iOS stack traces and debug files, see official documentation here.
Android
When an Android application is minified with ProGuard or R8, a mapping file is generated that LogRocket can use to decode application stack traces (generally named mapping.txt). When uploading, you must provide a release
identifier that matches your app build's versionName. To upload this file to LogRocket, use the following command:
logrocket upload-mobile \
--platform android \
--release="release_identifier" \
--apikey="your:api:key" \
--apihost="your api host url, equivalent to the domains.api value in your values.yaml" \
./path/to/mapping.txt
The provided path should point to a specific mapping file, which the cli will attempt to upload.
For more information on obfuscating and decoding stack traces in Android, see official documentation here.
Updated 29 days ago