2016年1月6日 星期三

[Android] mapping.txt 還原混肴過的名稱

有時我們在收到Google Play Developer Console 中的crash 訊息,

會在名稱中出現.a 或是.b 等等無法看出到底是什麼class出錯的問題,

例如下圖




















恭喜你,代表你的APK有成功透過proguard 將程式碼進行混淆,那我要怎麼找回對應呢?

如果你還有留著mapping.txt那就有救,但每次包APK時,mapping.txt的內容都會覆寫,

所以記得保留每一次的mapping.txt版本。


在SDK目錄下有一個好用的工具,叫做retrace  ,以Mac來說,它在以下目錄,

也就是SDK下的tools/proguard/bin。


/Users/username/Library/Android/sdk/tools/proguard/bin


首先我們先將錯訊訊息COPY & PAST  到文字檔,並存檔叫 myexception.txt

 (名字開心就好)

然候移到mapping.txt目錄下,輸入以下指令

./retrace.sh  -verbose mapping.txt   myexception.txt 

接著就會輸出還原後的class名稱




















參考資料:

沒有留言:

張貼留言