Es ist ziemlich spät, diese Frage zu beantworten, aber nur für den Fall, dass jemand meine Antwort braucht.
Speicherort der zu deobfuscierenden Zuordnungsdatei:
ProGuard speichert die Datei in der App
app / build / output / Mapping / FLAVOUR / release / Mapping.txt
Im Debug-Modus benötigen Sie die Mapping-Datei im Allgemeinen nicht, da die Verschleierung im Allgemeinen deaktiviert ist. Wenn dies nicht der Fall ist, stellen Sie sicher, dass Sie in der Datei build.gradle den folgenden Code für die Debug-Variante haben.
debug {
minifyEnabled false
debuggable true
}
Einige Fallstricke:
Die Mapping.txt-Datei wird bei jedem Erstellen eines Release-Builds mit ProGuard überschrieben. Erstellen Sie daher zuerst eine Sicherungskopie dieser Datei, bevor Sie ein neues Release erstellen. Dies hilft dabei, die Stapelverfolgung einer älteren Version Ihrer App zu verschleiern.
Abgesehen davon gibt es zwei Möglichkeiten, Ihren Code zu verschleiern:
1. Laden Sie Ihre Mapping.txt-Datei in die Google Play Console hoch:
Wenn Sie Ihre App auf Google Play veröffentlichen, können Sie die Datei maps.txt für jede Version Ihrer APK hochladen. Anschließend deaktiviert Google Play eingehende Stack-Traces von vom Benutzer gemeldeten Problemen, sodass Sie sie in der Google Play-Konsole überprüfen können.
2. Verwenden Sie das lokale SDK-Tool retrace.sh/retrace.bat:
Manchmal möchten Sie die Release-Version Ihrer App ausführen (indem Sie die Build-Variante in Release ändern und ausführen), um die Fehler zu überprüfen und zu beheben, damit sie nicht in der Produktion auftreten (wenn sie im Play-Store veröffentlicht werden).
Verwenden Sie das Retrace-Skript ( retrace.bat unter Windows; retrace.sh unter Mac / Linux ), um einen verschleierten Stack-Trace selbst in einen lesbaren zu konvertieren .
Es befindet sich im <sdk-root>/tools/proguard/bin/
Verzeichnis.
<sdk-root>
ist der Ort, an dem alle Android-Bibliotheken und SDKS installiert wurden.
Das Skript verwendet die Mapping.txt-Datei und Ihren Stack-Trace und erstellt einen neuen, lesbaren Stack-Trace.
Befehlssyntax:
retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]
Beispielsweise:
retrace.bat -verbose mapping.txt obfuscated_trace.txt
Ich bevorzuge die lokale Version der Verschleierung, da dies sehr praktisch ist, um Produktionsfehler vorab zu überprüfen.
Ich hoffe, es hilft.