В Android Studio, где файлы сопоставления ProGuard генерируются после компиляции подписанного APK?
Я не уверен, что он не работает или я просто забыл путь к файлу, и мой обязательный поиск в Google / Stack Overflow не ответил на этот вопрос.
В Android Studio, где файлы сопоставления ProGuard генерируются после компиляции подписанного APK?
Я не уверен, что он не работает или я просто забыл путь к файлу, и мой обязательный поиск в Google / Stack Overflow не ответил на этот вопрос.
Ответы:
Он должен находиться
build/outputs/proguard/release/mapping.txt
в каталоге вашего модуля приложения.В последней версии ProGuard и Android Studio этот файл находится по адресу
build/outputs/mapping/release/mapping.txt
.источник
/app/build/outputs/mapping/brandExampleEnvProductionRelease/mapping.txt
/app/build/outputs/mapping/brandExampleEnvIntegrationBeta/mapping.txt
новые пути.Для меня они в
'build/outputs/mapping/release'
источник
Я обнаружил, что лучше настроить proguard для записи файла mapping.txt в папку за пределами
build/
дерева каталогов, чтобы его было удобнее проверять в управлении версиями.Для этого поместите это в свой
proguard-rules.pro
файл:Это (скорее всего) поместит его в тот же каталог, что и ваш
proguard-rules.pro
файл. В конечном счете, вы, вероятно, захотите записать его в тот же каталог, что и ваш APK-файл, и с эквивалентным именем (которое может включать аромат, тип сборки и т. Д.).Примечание: по моему опыту, это не отменяется файлом шаблона proguard (который был предложен комментатором для другого ответа здесь).
ОБНОВЛЕНИЕ: если у вас есть несколько вариантов продукта, то это гораздо лучшее решение: https://stackoverflow.com/a/31116608/444761
источник
Я обнаружил, что это не генерируется, поэтому я добавил это в файл правил
источник
Уже довольно поздно, чтобы ответить на этот вопрос, но на тот случай, если кому-то понадобится мой ответ.
Расположение файла сопоставления для деобфускации:
Обычно в режиме отладки вам не нужен файл сопоставления, потому что там обычно запутывание отключено. Если это не тот случай, убедитесь, что в файле build.gradle у вас есть код ниже для варианта отладки.
Некоторые Gotchas:
Файл mapping.txt перезаписывается каждый раз, когда вы создаете сборку релиза с помощью ProGuard, поэтому сначала создайте резервную копию этого файла, прежде чем создавать новый выпуск. Это поможет запутать трассировку стека из более старой версии вашего приложения.
Кроме этого есть два способа запутать ваш код:
1. Загрузите файл mapping.txt в консоль Google Play:
При публикации приложения в Google Play вы можете загрузить файл mapping.txt для каждой версии вашего APK. Затем Google Play деобфусцирует следы входящих стеков от проблем, о которых сообщают пользователи, чтобы вы могли просмотреть их в консоли Google Play.
2. Используйте локальный инструмент SDK retrace.sh/retrace.bat:
Иногда вы хотите запустить выпускную версию вашего приложения (изменив вариант сборки на выпуск и запустив его), чтобы перепроверить и исправить ошибки, чтобы этого не произошло в рабочей среде (при выпуске в play-store).
Чтобы самостоятельно преобразовать запутанную трассировку стека в читабельную, используйте скрипт retrace ( retrace.bat в Windows; retrace.sh в Mac / Linux ).
Он находится в
<sdk-root>/tools/proguard/bin/
каталоге.<sdk-root>
это место, где были установлены все ваши библиотеки Android и SDK.Сценарий берет файл mapping.txt и трассировку стека, создавая новую читаемую трассировку стека.
Синтаксис команды:
Например:
Я предпочитаю локальную версию запутывания, так как это очень удобно для предварительной проверки производственных ошибок.
Я надеюсь, что это помогает.
источник
Я использую версию Android Studio 2.2.2 . Для меня это находится в следующих местах:
Для отладки:
\app\build\outputs\mapping\debug\mapping.txt
Для выпуска:
\app\build\outputs\mapping\release\mapping.txt
источник
Вот это на рисунке - вы найдете его в папке картирования:
источник
Потому что я тупой и теряюсь, даже когда кто-то говорит мне, где находится файл:
источник