前回ビルドまでしたときにテンプレートにプッシュ通知があることに気づきました。
プッシュ機能付きのプロジェクトをビルドして通知を受け取るまでに少してこずったので備忘録。
とりあえずそのままビルドしてみるとエラーメッセージ。
1 |
phonegap build android --release |
Failed to notify ProjectEvaluationListener.afterEvaluate(), but primary configuration failure takes precedence.
java.lang.IllegalStateException: compileSdkVersion is not specified.
…
* Where:
Script ‘PUSH\platforms\android\phonegap-plugin-push\pushsh-push.gradle’ line: 6
* What went wrong:
A problem occurred evaluating script. > PUSH\platforms\android\app\AndroidManifest.xml
メッセージを頼りに調べてgradleにdefaultConfigを追加してみたり、マニフェストを書いてみたり試しても変化なし。
そもそもphonegap-plugin-pushに問題があるようなフォーラムを見つけた。
デフォルトのバージョンが1.8だったので最新に入れなおす。
1 2 |
phonegap plugin rm cordova-plugin-app-version phonegap plugin add cordova-plugin-app-version@latest |
別のエラーメッセージが表示されるようになった。
* What went wrong:
Execution failed for task ‘:app:processReleaseGoogleServices’.
> File google-services.json is missing. The Google Services Plugin cannot function without it.
メッセージサービス設定用のjsonを用意しろと言われているので用意する。
それを以下のどこかに置けば勝手に見つけてくれるらしいです。
- PUSH/platforms/android/app/src/nullnull/release/google-services.json
- PUSH/platforms/android/app/src/release/nullnull/google-services.json
- PUSH/platforms/android/app/src/nullnull/google-services.json
- PUSH/platforms/android/app/src/release/google-services.json
- PUSH/platforms/android/app/src/nullnullRelease/google-services.json
- PUSH/platforms/android/app/google-services.json
nullnullというのは対象フォルダがない状態なのかわからないけど、一番最後の場所に置いておくのが自然に見える。
google-services.jsonを配置すると特に問題もなくビルドできた。
Firebaseを利用して通知をしてみるとちゃんと通知もできてました。
この辺のメモは次の記事に。