В новой документации по ProGuard для Android говорится о необходимости добавить строку в файл default.properties в домашнем каталоге проекта. Однако, открыв этот файл, я прочитал вверху:
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
Я что-то упускаю?
Кроме того, есть ли способ включить ProGuard только для производственной сборки из Eclipse (например, при экспорте готового продукта)?
android
eclipse
proguard
obfuscation
Тед Хопп
источник
источник
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
, нужны ли вам индивидуальные настройки для конкретного проекта.Ответы:
просто продолжение, потому что я искал то же самое - и ответы здесь устарели - в последнее время базовая конфигурация proguard находится здесь, в каталоге sdk, поэтому вам нужно только поместить это в свой project.properties:
если вы хотите внести изменения для конкретного проекта, создайте файл proguard-project.txt и измените строку на:
источник
Android SDK (r20 или выше)
Пожалуйста, проверьте предопределенный proguard.config, указанный в project.properties
Дополнительная информация: http://proguard.sourceforge.net/manual/examples.html#androidapplication
В Gradle:
Здесь вы можете проверить файл proguard по умолчанию, который я постоянно обновляю: https://medium.com/code-procedure-and-rants/android-my-standard-proguard-ffeceaf65521
Android SDK (r19 или ниже)
Вы можете добавить его в default.properties. Я добавляю вручную без проблем.
Если вы добавите строку:
Как уже говорилось, он будет использовать ProGuard только при экспорте подписанного приложения (Android Tools => Export Signed Application)
Если вы запустите проект с SDK до Android 2.3,
proguard.cfg
файл не будет создан (default.properties
как в 2.3>).Чтобы включить его автоматическое создание, просто обновите SDK до Android 2.3 и создайте новый проект с существующими источниками (которые являются источниками текущего проекта).
Заливка
proguard.cfg
будет создана автоматически.Если все же вы хотите создать его вручную, вот что он должен содержать:
Думаю, я ответил на все вопросы выше.
ОБНОВЛЕНИЕ :
Построчное объяснение:
ОБНОВЛЕНИЕ 2:
В самой последней версии ADT / Proguard
-keepclasseswithmembers
вместо-keepclasseswithmembernames
источник
proguard.config=proguard.cfg
но файла proguard.cfg нигде не видно ... Несмотря на выполнение экспорта несколько раз, перезапуск Eclipse и т. Д. Есть идеи, почему? и как это исправить? Спасибо.По крайней мере, начиная с ADT 16, вы действительно можете добавить строку
project.properties
, и она будет сохранена. Вы можете попробовать изменить целевую версию SDK и увидеть, чтоproject.properties
она обновляется соответствующим образом, но добавленная строка все еще существует. Итак, я думаю, что предупреждение просто плохо сформулировано; это означает, что настройки в файле, например,target
будут перезаписаны настройками проекта, а не наоборот.источник
Изменения в конфигурации ProGuard произошли в ADT версии 17. ProGuard был обновлен с 4.4 до 4.7, и разница в уже отмеченной ссылке на файл конфигурации была внесена. Обратите внимание, что существующие проекты останутся без изменений, оставив их без нового набора правил, включенного в эту и новые версии ADT. Соответствующий документ для более новой конфигурации, уже отмеченный ligi выше, доступен по адресу: -
http://tools.android.com/recent/proguardimprovements «Во-вторых, мы изменили способ обработки файлов конфигурации».
источник
Вы можете добавить строку в
build.properties
, как указано вdefault.properties
.источник