Closed7
[iOS] Firebase Cloud Messaging でプッシュ通知が届かない
既存アプリにFirebase/Messaging を導入したものの、Push 通知が実機に届かない。
- Apple Push Notification Authentication Key をFirebase Console で登録
- Firebase Messaging からPush 通知を送信
環境
- Xcode 12.5
- iOS 14.5
- Firebase/Core 8.0.0
- Firebaes/Messaging 8.0.0
- cURLを使うデバッグ方法でAPNs にリクエストを送信したところ、
BadDeviceToken
エラーが返ってくる。 - cURLを使うデバッグ方法でFCM にリクエストを送信したところ、success が返ってくる。
以下の対応を行って構築をやり直したところ、Push通知が動作するようになった。
- Apple Push Notification Authentication Key を使う方法ではなく、Apple Push Notification Service SSL
を使う方法にする (Firebase へアップロードしたKey を削除し、 開発・本番用の証明書の作成やFirebase への各証明書のアップロードなど行う) -
AppDelegate.swift
のdidRegisterForRemoteNotificationsWithDeviceToken
デリゲートメソッドにMessaging.messaging().apnsToken = deviceToken
を追加する
- Apple Push Notification Authentication Key の方が推奨されている方法なので、できれば移行したい
-
Messaging.messaging().apnsToken = deviceToken
をなぜ手動で実行しないといけないのか分かっていない- 「「APNs トークンと登録トークンとのマッピング」はFirebase SDK がやってくれるはずなのだが、上手く動いていない。実装方法間違いか、SDKの不具合?
改めて検証したところ、Apple Push Notification Authentication Key を使う方法で動作しそう。
ただしAPNs トークンとFCMトークンの手動マッピングを行わないと通知が届かなかった。
このスクラップは2021/05/24にクローズされました