Google Play Dev Console zeigt die Namen von Klassen und Methoden in Stacktrace an

8

Ich habe eine App mit Proguard aktiviert (minifyenabled true) und kürzlich einen Absturzbericht in der Google Play Dev Console erhalten. Als ich es ansah, sah ich das Folgende:

Ich war überrascht, die vollständigen Klassen- und Methodennamen in Zeile 1 zu sehen, da Proguard aktiviert ist. Ich habe schon immer so etwas gesehen:

  

bei com.myname.myapp.c.f (unbekannte Quelle)

Ich bin auch neugierig, wie die Zeilennummer erscheint, da ich Zeilennummern in meiner Proguard-Konfigurationsdatei nicht erhalte (daher sehe ich normalerweise 'Unbekannte Quelle' in meinen Stacktraces).

Ich habe meine .apk dekompiliert, die classes.dex-Datei angeschaut und alles sah gut aus. Ich habe die in Zeile 1 des Stacktrace referenzierte Klasse lokalisiert und der Klassenname wurde tatsächlich verschleiert, ebenso wie der Methodenname.

Nun ist "MyActivity" (Zeile 2 des Stacktrace) die Startaktivität meiner App und wird als solche im Manifest deklariert. Daher verstehe ich, warum der Name nicht verschleiert ist und die 'onConnected'-Methode nicht eine Methode von mir (es kommt von Google Play Games Services), also, wieder, das ist in Ordnung.

'MyMethodName' wird von innerhalb onConnected wie folgt aufgerufen:

%Vor%

Debug ist in meiner Datei build.gradle deaktiviert.

Ich lade die mapping.txt-Dateien nicht in die Play-Konsole hoch. Ich führe den Rücklauf manuell aus, um meine de-obfuskierten Stacktraces zu sehen.

Ich würde mich freuen, wenn mir jemand helfen könnte zu verstehen, warum ich meinen vollen Klassen- und Methodennamen hier sehe? Was kann / sollte ich tun, um dies zu verhindern?

    
Zippy 03.09.2017, 13:31
quelle

2 Antworten

3

Nachdem ich mich wochenlang quälen musste, entdeckte ich endlich die Ursache ...

Es genügt zu sagen, dass meine veröffentlichte App vollständig verschleiert ist - diese entschatteten Stack-Spuren kommen von meinem eigenen Testgerät !!

Ja, mein eigenes Testgerät startet die App direkt über Android Studio und unsigniert . (Und aus offensichtlichen Gründen kann ich ProGuard nicht für meine Debug-Builds aktivieren.)

Das Gerät, das ich zum Testen dieser App verwendet habe, ist kein "Mainstream" -Gerät und der Name, der in der Dev Consol erscheint, hat keine Ähnlichkeit mit dem tatsächlichen Namen des Geräts, so dass ich es nicht sofort bemerkt habe / p>

Ich bin mir ziemlich sicher, dass das in der Vergangenheit nie passiert ist (ich habe es bis jetzt noch nicht gesehen) - warum sollte jemand Absturzberichte von seinen Debug-Builds in der Dev-Konsole zusammen mit Produktions-Build-Abstürzen sehen wollen, ich Ich weiß es nicht.

Wenn also jemand dieses Problem sieht, vergewissern Sie sich, dass es nicht Ihre eigenen Debug-Builds sind, die den Stapel von Stack-Traces verursachen!

    
Zippy 12.09.2017, 15:23
quelle
-2
  

Ich lade keine mapping.txt-Dateien in die Play-Konsole hoch, ich führe einen Rücklauf aus   manuell, um meine de-obfuskierten Stacktraces zu sehen.

Dann möchten Sie möglicherweise mapping.txt zu Google Play hinzufügen, wodurch sichergestellt wird, dass Ihre Pakete und Klassennamen verschleiert sind.

    
Yamen Nassif 11.09.2017 12:10
quelle