1
0

More than 3 years have passed since last update.

[Android]Play Publisher Gradle Pluginでリリースした際に、Crashlyticsのログが難読化されたままになる場合の対処法

Posted at

Android アプリで Crashlytics を使ってクラッシュログを確認していたのですが、ある時から Crashlyitcs のコンソールに表示されるログが難読化されたままになってしまいました。

原因を調査したところ、Play Publisher Gradle Plugin という Gradle Plugin が原因だったのでそれについて共有したいと思います。

問題点

Android アプリの開発において Play Publisher Gradle Plugin を使うと、Gradle のタスクで Google Play Console へ APK や App Bundle をアップロードできるようになります。

Issue にもあるのですが、どうやらバージョン3.0 Crashlytics に mapping.txt がアップロードされない不具合があったようです。
(正確には、Crashlytics に mapping.txt をアップロードする Gradle タスクが実行されていない不具合)

こちらの不具合はバージョン3.1.0で修正されたようですが、私が確認している限りでは3.1.0と現在(2021/02/18 時点)の最新のバージョンである3.2.0ではまだ Crashltyics に mapping.txt はアップロードされませんでした。

対処方法

重要なのは Crashlytics へ mapping.txt をアップロードする Gradle タスクが実行されるかどうかです。

このタスクは uploadCrashlyticsMappingFileXXX というタスク名になっています。
XXX にはビルドバリアントの名前が入ります)

Google Play Console へアプリをアップロードする Gradle タスクを実行したら、この名前のタスクが実行されているか確認した方がよいかと思います。

方法その1

Issue にも記載がありますが、簡単な方法としては APK or App Bundle をアップロードする前に一度ビルドする処理を実行することです。

  • APK の場合
./gradlew assembleRelease publishRelease
  • App Bundle の場合
./gradlew bundleRelease publishRelease

方法その2

もしくは少し冗長かもしれませんが app/build.gradle に以下のような設定をして、Google Play Console へアプリをアップロードする Gradle タスクを実行する前に Crashlytics へ mapping.txt をアップロードするタスクを実行させることもできます。

(以下のコードは Android Gradle Plugin 4.1系に対応しています)

play {
    ...
}

android.onVariants { variant ->
    def variantName = variant.name.capitalize()
    afterEvaluate {
        tasks.all {
            switch (it.name) {
                case "publish${variantName}Bundle":
                    it.dependsOn "uploadCrashlyticsMappingFile${variantName}"
                    break
            }
        }
    }
}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0