androidcrashlyticsdeobfuscation

How crashlytics de-obfuscates the crash exception stack


I have integrated crashlytics for my app but did not enable proguard till today.

I configured my project like below:

        debug {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

And I modified code to force a crash then I went to Crashlytics console to see how the crash exception stack look like.

I expect the exception stack is something obfuscated like a.b.c.d.e.f(:232), but in fact I can see the de-obfuscated stack, clear classes names and method names.

I know that when releasing an apk I need to upload the obfucation mapping file so Crashlytics can know how to de-obfuscate. But for my scenario, I never upload such a mapping file for my development build (run the app straightly from Android Studio), I also get the de-obfuscated exception stack from Crashlytics (not the case in my Android Studio, which the exception is obfuscated)

I am curious about how the Crashlytics de-obfuscates it for my development build.


Solution

  • The Crashlytics plugin automatically uploads a mapping file to Crashlytics service when you build your app.

    https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports?platform=android