1日くらいハマったのですが、なんとか解決できたので対処方法をまとめ。
Cordova で開発した iOS アプリでプッシュ通知が受信できない時の対処方法についてです。
なお、今回使用したプラグインは「cordova-plugin-fcm」です。
ただ、他の Cordova アプリでもこちらのプラグインを使ったのですが、その時は意外と簡単に導入できたような記憶があります…。
Xcode とか Cordova のバージョンが上がって設定方法とか変わったのかな?
なお、今回参考にさせていただいた投稿はこちら。
iOS not receiving push notification from FCM · Issue #553 · fechanique/cordova-plugin-fcm · GitHub
https://github.com/fechanique/cordova-plugin-fcm/issues/553
導入手順については、GitHub に掲載されているので割愛しますが、Firebase Console のページで GoogleService-Info.plist
ファイルを生成して、プロジェクトのルートディレクトリに配置してからプラグインを追加した方がスムーズかな?という気がしました。
なお、Firebase Console の設定ページでは、APNs 認証キーを設定するのをお忘れなく!
こちらのキーは、Apple Developer の Certificates, Identifiers & Profiles ページで作成できます。
なお、キーのダウンロードは作成時の一度のみしかできませんので、ご注意ください。
次に、Xcode で設定する項目はまずこちら。
なお、Xcode は Build Sysyem の設定を Legacy Build System に変更しておいてください。
上の画像のように、Capabilities の画面で、Background Modes、Keychain Sharing、Push Notifications を追加します。
Background Modes の項目では、Remoto Notifications にチェックを入れてください。
最後に、Info.plist
に FirebaseAppDelegateProxyEnabled を追加し、値を YES
で設定すれば完了です!
あとは、端末にインストール済のアプリを一度削除してから、再度 Clean → Build してからプロジェクトを再インストールしてください。
起動が確認できたら、そのアプリは一旦終了します。
そして、Firebase Console ページの Cloud Messaging から通知を新規作成し、送信したところ、無事プッシュ通知を受信することができました!
もし、上記を設定してもプッシュ通知が送られてこない!という場合は…状況によるかもしれませんが、一日待つというのも、もしかしたら効果的かもしれません。
実際、私も昨日上記を試してうまくいかず、アプリやプロジェクトも何度か削除して再作成などをしたのですが、今日再度諸々の設定を確認してプッシュ通知を送ったら受信できました…。
以上、Cordova で開発した iOS アプリで FCM から送信したプッシュ通知を受信できない時の対処法でした。
ご参考になれば幸いです。