Мои журналы Firebase Crashlytics частично обфусцированы (только имена методов) для некоторых сбоев при использовании Proguard, даже если отображение настроено правильно.
Отображение Proguard работало примерно до 12 сентября, когда Gradle (через Jenkins) в последний раз регистрировал Uploading deobfuscation file
и связанные журналы в ~/Library/Caches/com.crashlytics/com.crashlytics.tools/crashlytics.log
. Теперь Gradle не регистрирует какие-либо журналы или ошибки обфускации Proguard. Кроме того, я проверил git-коммиты, ведущие к дате, чтобы убедиться, что ничего не изменилось.
Вот моя реализация. Я добавил / исключил правила Proguard из документации.
Добавлено:
-keep public class * extends java.lang.Exception
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
Исключено: -printmapping mapping.txt
Вот пример того, как имена методов не используютсязапутано:
com.app.android.coursetaking.nonvideo.ebook.EbookDataManager.a (SourceFile:18)
com.app.android.coursetaking.nonvideo.ebook.EbookViewModel.a (SourceFile:53)
com.app.android.viewmodel.RxViewModel.a (SourceFile:110)
com.app.android.viewmodel.RxViewModel.O (SourceFile:102)
com.app.android.coursetaking.nonvideo.ebook.AbstractEbookFragment.onViewCreated (SourceFile:98)
androidx.fragment.app.FragmentManagerImpl.a (SourceFile:1471)
androidx.appcompat.app.AppCompatActivity.onStart (SourceFile:178)
com.app.android.activity.BaseActivity.onStart (SourceFile:212)
com.app.android.core.activity.UserBoundActivity.onStart (SourceFile:63)
android.app.Instrumentation.callActivityOnStart (Instrumentation.java:1391)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858)
Если я найду файл сопоставления, я смогу увидеть сопоставление с обфусцированными именами.
Я думаю, что проблема возникает после сборки приложения, так как я вижу файл сопоставления. Но я не уверен, где искать дальше из-за отсутствия журналов Gradle для Firebase Crashlytics.
Наконец, я попытался вручную запустить задачу Gradle для загрузки подписанного APK, crashlyticsUploadDistributionMainAppRelease
. Не удалось найти подписанный APK: Crashlytics halted compilation because it can't distribute the unsigned APK path/to/release/app-mainApp-release.apk
, хотя подписанный APK был там.