この記事について
UnityでAndroidアプリにFirebase Crashlyticsを利用する際、ハマった部分をまとめました。
バージョン
Unity 2021.3.11f1
firebase unity sdk 9.6.0
事象
Firebaseドキュメントに沿ってアプリを作成し、実行したところ、adb logcat
でなんかエラーが出た
(ビルドのタイミングで出て欲しい)
10-17 15:19:00.821 17474 17552 E firebase: Failed to read Firebase options from the app's resources. Either make sure google-services.json is included in your build or specify options explicitly.
いきなり結論
Unity 2020.1以降ではFirebaseドキュメント通りのやり方ではFirebaseは動かない
Unity 2019を使ってね、とFirebase blogでは言っている。
Unity 2020.1以降での作業
前提として、Firebaseドキュメントの作業は完了しているものとします
Unity 2020.1以降でFirebaseを使えるようにする
ビルド設定 -> プレイヤー設定でプレイヤーを開く
プレイヤー -> 公開設定で
- カスタムメイン Gradle テンプレート
- カスタム Gradle プロパティテンプレート
へチェックボックスを入れる
Assets/Plugins/Android/mainTemplate.gradle
の末尾に以下を追記する
android {
sourceSets {
main {
def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("", "/")
res.srcDirs += (unityProjectPath + '/Assets/Plugins/Android/Firebase/res/values/google-services.xml')
}
}
}
Assets/Plugins/Android/gradleTemplate.properties
の末尾に以下を追記する
android.useAndroidX=true
android.enableJetifier=true
Crashlyticsを使えるようにする追加作業
ビルド設定 -> プレイヤー設定でプレイヤーを開く
プレイヤー -> 公開設定で
- カスタムランチャー Gradle テンプレート
- カスタムベース Gradle テンプレート
へチェックボックスを入れる
Assets/Plugins/Android/baseProjectTemplate.gradle
のallprojects.buildscript.dependencies
に以下を追記する
// Add the Crashlytics Gradle plugin.
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.2.0'
Assets/Plugins/Android/launcherTemplate.gradle
の末尾に以下を追記する
// Apply the Crashlytics Gradle plugin
apply plugin: 'com.google.firebase.crashlytics'
最後に
Assetフォルダへgoogle-services.json
の配置確認(私の環境ではいつの間にか消えていました)
Unityを再起動(大事)
参考