问题
I got a stacktrace from the crashreporting system and it is obfuscated, like
... Failed resolution of: Lru/test/c/b/a; ...
I have a mapping file.
How to deobfuscate this stacktrace using mapping.txt?
回答1:
Get deobfuscated crash stacktrace from your app page
Upload your mapping.txt to your app PlayStore page with the following steps:
- Sign in to your Play Console.
- Select an app.
- On the left menu, click Android vitals > Deobfuscation files.
- Next to a version of your app, click Upload.
- Upload the ProGuard mapping file for the version of your app.
After doing so, to view your deobfuscated crash stack traces:
- Sign in to your Play Console.
- Select an app.
- On the left menu, click Android vitals > ANRs & Crashes.
- Select a crash.
- On the "Stack Traces" tab, you'll see your deobfuscated stack traces.
You can check this link for more details.
Deobfuscate a piece of stacktrace
To convert the code by yourself use the retrace script (retrace.bat on Windows; retrace.sh on Mac/Linux). It is located in the <sdk-root>/tools/proguard/
directory. The script takes the mapping.txt file and your stack trace, producing a new, readable stack trace. The syntax for using the retrace tool is:
retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]
回答2:
About deobfuscation of an existing stacktrace: only from the time you add mapping file you would be able to track the stacktrace, before that you won't be able to get the stacktrace.
来源:https://stackoverflow.com/questions/56006933/how-to-deobfuscate-an-android-stacktrace-using-mapping-file