【发布时间】:2019-09-24 04:36:06
【问题描述】:
我从崩溃报告系统得到了一个堆栈跟踪,它被混淆了,比如
... 解析失败:lru/test/c/b/a; ...
我有一个映射文件。
如何使用 mapping.txt 去混淆这个堆栈跟踪?
【问题讨论】:
标签: android proguard obfuscation deobfuscation
我从崩溃报告系统得到了一个堆栈跟踪,它被混淆了,比如
... 解析失败:lru/test/c/b/a; ...
我有一个映射文件。
如何使用 mapping.txt 去混淆这个堆栈跟踪?
【问题讨论】:
标签: android proguard obfuscation deobfuscation
从您的应用页面获取去混淆的崩溃堆栈跟踪
通过以下步骤将您的 mapping.txt 上传到您的应用 PlayStore 页面:
这样做后,查看去混淆的崩溃堆栈跟踪:
您可以查看this link了解更多详情。
去混淆一段堆栈跟踪
要自行转换代码,请使用回溯脚本(Windows 上的 retrace.bat;Mac/Linux 上的 retrace.sh)。它位于~/Android/sdk/tools/proguard/bin/ 目录中。该脚本采用 mapping.txt 文件和您的堆栈跟踪,生成一个新的、可读的堆栈跟踪。使用回溯工具的语法是:
retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]
【讨论】:
<sdk-root> 已经存在,但由于我没有用'`'注释它,它没有显示,我现在才注意到它。我这边有点晚了,但感谢您的提醒
我们可以使用 pro-guard 工具进行回溯:
首先从以下位置获取映射文件
<project-path>app/build/outputs/mapping/flavor/release/mapping.txt
从以下位置找到 pro-guard 工具,即“proguardgui”
<your-computer-name>/AppData/Local/Android/SDK/tools/proguard/lib
然后你会得到proguardgui.jar
在 mac 上:/Users/<your computer name>/Library/Android/sdk/tools/proguard/lib
使用终端
java -jar /Users/<your computer name>/Library/Android/sdk/tools/proguard/lib/proguardgui.jar
现在单击左侧菜单侧的回溯选项以获取以下窗口,从上述位置浏览您的 mapping.txt 文件,并将您的堆栈跟踪错误日志添加到混淆的堆栈跟踪窗口中,然后单击 @987654329 @按钮获取deObfuscated错误报告。
还有另一种使用 Google Play 商店自动执行的方法 控制台。
Check this website of Google Play Store Console for detailed steps.
【讨论】:
另一种选择(对我有用)。
位置:C:\Program Files\Android\Android Studio\jre\bin(java.exe在这里)
从 Sdk\tools\proguard\lib 添加文件:
proguard.jar
retrace.jar
添加您的 mapping.txt 和 stacktrace 文件
使用以下行创建一个 bat 文件:
java -jar retrace.jar -verbose mapping.txt 堆栈跟踪
暂停
运行它。
【讨论】: