Сохраняйте защищенную копию запутанных файлов при выпуске с eclipse

#android #proguard

#Android #proguard

Вопрос:

Иногда я получаю трассировки стека ошибок, которые трудно отследить, потому что, когда Proguard запутывает, он также объединяет некоторые частные методы, а затем, выполняя повторную трассировку, у меня нет точной строки, которая вызывает ошибку.

Мой вопрос в том, есть ли способ при выполнении экспортированного подписанного apk-файла с Eclipse сохранить запутанные файлы классов, которые упакованы в classes.dex. Таким образом, с запутанными файлами классов я смогу деобфускировать их и лучше видеть, какой код объединен, и выяснить, где может быть ошибка трассировки стека.

Ответ №1:

Вам необходимо сохранить mapping.txt файл для каждой версии, которую вы выпускаете, и затем вы можете использовать его для де-запутывания трассировок с помощью команды ‘retrace’ (или просто поиска имен в mapping.txt вручную номера строк не меняются):

http://developer.android.com/guide/developing/tools/proguard.html#decoding

Комментарии:

1. Я знаю, как деобфускировать с помощью retrace. Моя проблема в том, что текущая повторная трассировка не дает мне достаточно информации из-за объединенной функции.

2. О, извините, что пропустил это. Не знаете способа сохранить классы с помощью Eclipse, возможно, вы сможете сделать это с помощью Ant, где у вас больше контроля над шагами сборки. Возможно, вы захотите указать -dontoptimize опцию ProGuard, которая не позволит объединить код.