はじめに
標題の通りです。Firebaseでシステムを作ったのは良いけど、AdMobの設定が終わっているUnityのProjectに持っていったら盛大にエラーが出まくって詰みまくった時にどう解決したか、をレポートしていきます。
AdMobについては至る所で説明されているので割愛させていただきます。
Firebaseについては、本ブログで色々と記事を記載していますので、そちらを御覧ください。
事象
AdMobとFirebaseをUnity上で同居させると、Editorエラーに始まりスクリプトエラーやらマニュフェストがどうたらとか、、、もちろんゲームを実行させることも出来ません。
(あまりのエラーの多さにキャプチャやらログを控えるのを諦めてしまった(;・∀・)
原因
心をポッキリ折ってくれた詰みポイントを交えて、原因を紹介します。
エラーの内容が多すぎ(詰みポイント1)たのですが、私が解決した際の助けになったエラーログが以下です。
TypeLoadException: Could not load type 'GooglePlayServices.UnityCompat' from assembly 'Firebase.Editor'.
↓を見る限りだとどうもPlayServicesResolverを常に最新にしないと行けないとなっています。
PlayServicesResolverはGoogleから提供されるPackageに大体梱包されています。
が、どれが最新かわかりません。(詰みポイント2)
また、PlayServicesResolverはUnityの不具合なのかわかりませんが、Project Viewを綺麗にしようとして、別フォルダ等に移動していたら、同一ファイルと認識しません(詰みポイント3)
と言うか、Firebaseから入ってくるPlayServicesResolverはファイル名にバージョンが示されており、またAdMobから入ってくるPlayServicesResolverはファイル名にバージョンが入って居ないため、やっぱりどれが最新かわかりません(詰みポイント4)
解決策 (2017/9/3時点)
FirebaseとAdMobの共存で不具合が起きた場合は大体がPlayServicesResolverに行き着くと思います。
対応方針は、最新のPlayServicesResolverにすることです。
2017/9/3時点では、Firebaseから導入するPlayServicesResolverの方が最新でしたので、こちらを採用しました。(と言うか2つとも試して、エラーにならない方を採用した)
なので、現状私の構成は以下の通りです