Firebase でプッシュ通知などを行う場合、cordova-plugin-firebase プラグインがよく利用されています。
この cordova-plugin-firebase プラグインが、2019年5月7日ごろから Android ビルドで問題が発生するようになりました。
cordova-plugin-firebase では、ライブラリーで使用するバージョンが +
指定されているため、ライブラリーのバージョンが更新されたことにより、ビルドに問題が発生しているようです。
現在、New error on android build since 06-05-2019 #1057 でも回避策などが報告されていますが、cordova-plugin-firebase プラグインを Monaca で利用する場合には、次のように設定を変更する必要があります。
2019年5月18日現在、正常に Android ビルドができることを確認していますが、設定を変更しているため、動作保証はありません。
修正を行う場合は、ご自身の判断でお願いします。
2019年6月17日に Firebase ライブラリーが更新されたため、現在は、下記の修正を行っても Android ビルドは失敗します。
詳しくは、Firebase Android Release Notes / Update - June 17, 2019) を参照してください。
2019年6月20日現在、正常に Android ビルドができることを確認していますが、設定を変更しているため、動作保証はありません。
修正を行う場合は、ご自身の判断でお願いします。
plugin.xml の修正
はじめに、cordova-plugin-firebase@2.0.5
の Zip ファイルをダウンロードして、解凍します。
ルートフォルダーにある plugin.xml の以下の設定
<framework src="com.google.android.gms:play-services-tagmanager:+" />
<framework src="com.google.firebase:firebase-core:+" />
<framework src="com.google.firebase:firebase-messaging:+" />
<framework src="com.google.firebase:firebase-config:+" />
<framework src="com.google.firebase:firebase-perf:+" />
を
<framework src="com.google.android.gms:play-services-tagmanager:16.0.8" />
<framework src="com.google.firebase:firebase-core:16.0.8" />
<framework src="com.google.firebase:firebase-iid:17.1.1" />
<framework src="com.google.firebase:firebase-messaging:17.5.0" />
<framework src="com.google.firebase:firebase-config:16.4.0" />
<framework src="com.google.firebase:firebase-perf:16.2.4" />
に変更します。
helper.js の修正
/scripts/android/helper.js の以下の設定
var googlePlayDependency = whitespace + 'classpath \'com.google.gms:google-services:4.2.0\' // google-services dependency from cordova-plugin-firebase';
を
var googlePlayDependency = whitespace + 'classpath \'com.google.gms:google-services:4.1.0\' // google-services dependency from cordova-plugin-firebase';
に変更します。
build.gradle の修正
/src/android/build.gradle の以下の設定
compile 'com.google.firebase:firebase-auth:+'
を
compile 'com.google.firebase:firebase-auth:16.2.0'
に変更します。
plugin.xml と helper.js と build.gradle を修正したら、再び Zip ファイルにすることで、Monaca プロジェクトにインポートすることができます。
注意点
今回の修正では、ライブラリーのバージョンが、固定になっています。
そのため、Monaca プロジェクトに複数の Cordova プラグインを追加した場合は、バージョン競合が発生する可能性があります。
おわりに
これまでビルドできていた cordova-plugin-firebase@2.0.5
プラグインがビルドできなくなった場合は、一度、試してみてください。