In der neuen Dokumentation zu ProGuard für Android heißt es, dass der Datei default.properties im Home-Verzeichnis des Projekts eine Zeile hinzugefügt werden soll. Beim Öffnen dieser Datei habe ich jedoch oben gelesen:
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
Vermisse ich etwas
Gibt es auch eine Möglichkeit, ProGuard nur für einen Produktions-Build aus Eclipse zu aktivieren (dh beim Exportieren des fertigen Produkts)?
android
eclipse
proguard
obfuscation
Ted Hopp
quelle
quelle
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
, ob Sie benutzerdefinierte Einstellungen für ein bestimmtes Projekt benötigen.Antworten:
Nur ein Follow-up, weil ich nach der gleichen Sache gesucht habe - und die Antworten hier sind veraltet - in letzter Zeit befindet sich die Base Proguard-Konfiguration hier im SDK-Verzeichnis - Sie müssen dies also nur in Ihre project.properties einfügen:
Wenn Sie projektspezifische Änderungen vornehmen möchten, erstellen Sie eine proguard-project.txt und ändern Sie die Zeile in:
quelle
Android SDK (r20 oder höher)
Bitte überprüfen Sie die vordefinierte proguard.config, auf die in project.properties verwiesen wird
Weitere Informationen: http://proguard.sourceforge.net/manual/examples.html#androidapplication
Auf Gradle:
Hier können Sie eine Proguard- "Standard" -Datei überprüfen, die ich ständig aktualisiere: https://medium.com/code-procedure-and-rants/android-my-standard-proguard-ffeceaf65521
Android SDK (r19 oder niedriger)
Sie können es zu den default.properties hinzufügen. Ich habe manuell hinzugefügt, ohne bisher ein Problem zu haben.
Wenn Sie die Zeile hinzufügen:
Wie gesagt, ProGuard wird nur beim Exportieren signierter Anwendungen verwendet (Android Tools => Signierte Anwendungen exportieren)
Wenn Sie das Projekt mit dem SDK vor Android 2.3 starten, wird die
proguard.cfg
Datei nicht erstellt (nebendefault.properties
wie in 2.3>).Um die automatische Erstellung zu aktivieren, aktualisieren Sie einfach auf das SDK von Android 2.3 und erstellen Sie ein neues Projekt mit vorhandenen Quellen (die die Quellen des Projekts sind, über das Sie derzeit verfügen).
Automatisch wird die
proguard.cfg
Füllung erstellt.Wenn Sie es dennoch manuell erstellen möchten, sollte es Folgendes enthalten:
Ich glaube, ich habe alle oben genannten Fragen beantwortet.
UPDATE :
Eine zeilenweise Erklärung:
UPDATE 2:
In der letzten ADT / Proguard-Verwendung
-keepclasseswithmembers
anstelle von-keepclasseswithmembernames
quelle
proguard.config=proguard.cfg
aber die Datei proguard.cfg ist nirgends zu sehen ... Trotz mehrmaligem Export, Neustart von Eclipse usw. Irgendeine Idee warum? und wie kann man das beheben? Vielen Dank.Zumindest ab ADT 16 können Sie die Zeile tatsächlich hinzufügen
project.properties
, und sie bleibt erhalten. Sie können versuchen, die Ziel-SDK-Version zu ändern, und sehen, dass dieseproject.properties
entsprechend aktualisiert wird, die hinzugefügte Zeile jedoch noch vorhanden ist. Ich denke, die Warnung ist nur schlecht formuliert. es bedeutet zu sagen, dass Einstellungen in der Datei, wietarget
sie mit Projekteinstellungen überschrieben werden, und nicht umgekehrt.quelle
Änderungen an der ProGuard-Konfiguration wurden mit ADT Version 17 vorgenommen. ProGuard wurde von 4.4 auf 4.7 aktualisiert und der Unterschied in der bereits erwähnten Referenz der Konfigurationsdatei wurde eingeführt. Beachten Sie, dass vorhandene Projekte unverändert bleiben und ohne den neueren Regelsatz in dieser und neueren ADT-Versionen verbleiben. Relevante Dokumente für neuere Konfigurationsanordnungen, die bereits von ligi oben erwähnt wurden, sind verfügbar unter: -
http://tools.android.com/recent/proguardimprovements "Zweitens haben wir die Art und Weise geändert, wie Konfigurationsdateien behandelt werden."
quelle
Sie können die Zeile hinzufügen
build.properties
, wie in erwähntdefault.properties
.quelle