後からFirebaseのプッシュ通知を設定する場合に確認しておきたいこと(認証キーを使う場合)

既存のプロジェクトに後からプッシュ通知の設定を入れる際に、全く通知が届かず、手こずったのでので備忘録。

状況

  • FirebaseのCloudMessagingの機能を使って、iPhoneにプッシュ通知を送りたい
  • そのため、公式ドキュメントに沿って、設定やコードを追加した
  • 今回はAPNs証明書ではなく、APNs認証キーを利用
  • そのため、APNsの設定はこちらのドキュメントに沿って追加した
  • ...プッシュ通知全然届かん!!

原因

その1)プロビジョニングプロファイルの指定を間違っていた...😇

  • AppleStore未公開のアプリで通知のテストを行うためには、送りたい端末のUDIDが紐づいたプロビジョニングプロファイルを設定する必要がある(無かったら作成すること)
  • 受信したい端末のUDIDを紐づけたプロビジョニングプロファイルを指定できていなかった...うぅ...
  • ちゃんと、Debugの設定を変更すること

f:id:muchan611:20200118174242p:plain

その2)Capabilitiesの設定が足りなかった

  • Background Modesと Push Notificationsの設定を追加したら無事受信できるように...!!
  • firebaseが出しているサンプルを落としてきて見比べたら、設定の違いに気づきました

github.com

f:id:muchan611:20200118174846p:plain

ふぅ、いつもPUSH通知の設定に手こずっている気がする....

ちなみに、記事と全然関係無いですが、iOS13.3に上げた後くらいから殆どのアプリからプッシュ通知が全く届かなくなりました(再起動、SIM抜き差しなど試したがダメ)。

Appleサポートに問い合わせたら、「設定 >一般>リセット>すべての設定をリセット」を実行してくれ(端末のデータに影響は無いから安心せよ)と言われ、そのようにしたら改善しました👏
壁紙、Wifi設定、VPN、アラーム設定など、設定系は初期状態に戻ってしまいますが、どうしようもない場合などは試してみる価値ありですね。
WalletアプリからSuicaのチャージもできなくなっていたのですが、それも直りました✌️