LoginSignup
1
0

More than 3 years have passed since last update.

Android に Firebase Crashlytics 導入後、署名付き APK を作れなくなった

Posted at

背景

Android のエミュレーターでは正常に動作するのに、実機で起動するとクラッシュするという事象が発生し原因を調査していました。

それの原因は別エントリーで書く予定ですが、今回はそれ以前の話として Crashlytics を導入することにしました。

手順

公式ドキュメントより

詳細は上記に記載されているので割愛しますが、簡略して書くと下記のとおりです。

1. build.gradle (app じゃないほう)の dependency に以下を追加
/build.gradle
buildscript {
    ...
    dependencies {
        ...
        classpath 'com.google.gms:google-services:4.3.3'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.1.1'
    }
}
2. build.gradle (app のほう)に以下を追加
app/build.gradle
apply plugin: 'com.google.firebase.crashlytics'
app/build.gradle
dependencies {
    ...
    implementation 'com.google.firebase:firebase-analytics-ktx:17.4.2'
    implementation 'com.google.firebase:firebase-crashlytics:17.0.0'
    ...
}
3. 実行する

エミュレータ上ですが、問題なく実行できました。
実機の方は USB ケーブルが腐ってて端末を認識できず動作未確認ですが、今回の問題は別の話です。

署名付き APK を作成しようとする

Android Studio 上で

  • Build > Generate Signed Bundle / APK

を選択して APK を作成します(Bundle にはまだ未対応)。

エラーその1

console.
Could not resolve Firebase Google app ID, cannot upload mapping file

??

結論から言うと、さっきのドキュメントに以下のような記載があり

Screen Shot 2020-06-02 at 23.40.02.png

自分がやった手順では最後の

  • apply plugin: 'com.google.firebase.crashlytics'

しか追加してなかったのですが、その上の行に薄〜く書いてある

  • apply plugin: 'com.google.gms.google-services'

も追加する必要がありました。

エラーその1解決

build.gradle

app/build.gradle
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'

がちゃんと全部あるかどうか確認。

それを追加して再度実行します。

エラーその2

今度は

Host name may not be empty

というのが出ました。一体何のことだ!?

これも結果だけ言うと、公式ドキュメントを読み進めて、別のページを参考にしました。

このエラーは、 proguard(難読化)を有効にしている場合に起きるようです。

実際、ステージング向けに minifyEnabled false (proguard 無効)な環境では、この段階で署名付き APK の作成に成功しています。

今回失敗したのは proguard 有効な環境です。

エラーその2解決

minifyEnabled true な環境では、以下の設定も一緒に追加する必要があるようです。

app/build.gradle
    release {
        ...
        minifyEnabled true
        firebaseCrashlytics {
            mappingFileUploadEnabled false
        }
    }

ここまでで、リリース版の署名付き APK の作成に成功しました。

今回は Crashlytics の導入までですが、この後に起きた問題はまた別件として記載していく予定です。

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