无法接收 iOS 的 FCM 推送通知

Posted

技术标签:

【中文标题】无法接收 iOS 的 FCM 推送通知【英文标题】:Can't receive FCM Push Notifications for iOS 【发布时间】:2018-04-22 08:15:28 【问题描述】:

我正在尝试使用 Firebase Cloud Messaging (FCM) SDK 向 ios 设备发送推送通知。我创建了一个非常简单的应用程序,它有一个空的 ViewController 和一个由 quick start iOS project 提供的 AppDelegate 复制的应用程序。

我遵循了guide中提供的所有说明:

使用 pod 安装 SDK,这是我的 podFile:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

pod 'Firebase/Core'
pod 'Firebase/Messaging'

target 'fcmPushTest' do
# Comment the next line if you're not using Swift and don't want to use 
dynamic frameworks
use_frameworks!

# Pods for fcmPushTest

end
在 Xcode 的“功能”选项卡中添加了推送通知 在苹果开发者门户上生成的 APNs 认证密钥和 APPID(APPID 由 Xcode 自动生成) 在 Firebase 开发者控制台中为我的应用创建了一个新项目,下载并复制项目根目录下的 GoogleService-Info.plist 文件 在 Firebase 开发者控制台中上传了 APNs 身份验证密钥 已安装应用并将其置于后台(应用在前台时不会出现通知)

当应用程序启动时,它会正确返回一个 FCM 令牌。然后我在 FCM 推送通知控制台中使用此令牌以发送消息但没有任何反应:即使控制台说消息已“完成”,也未收到通知

尝试使用 curl 发送通知

curl -X POST --header "Authorization: key=<API_ACCESS_KEY>" \
--Header "Content-Type: application/json" \
https://fcm.googleapis.com/fcm/send \
-d "\"to\":\"<YOUR_DEVICE_ID_TOKEN>\",\"notification\":\"body\":\"Yellow\",\"priority\":10"

我收到以下回复:

"multicast_id":7144776975498650143,"success":1,"failure":0,"canonical_ids":0,"results":["message_id":"0:1510221288971805%7fe9e2a37fe9e2a3"]

由于成功等于 1,我想一切正常,但我仍然没有收到任何通知。

我搜索了问题的可能原因,但似乎 Firebase 消息库最近已更改(pod 说我使用的是 FirebaseMessaging 2.0.3 版本)所以我找不到合适的解决方案。

【问题讨论】:

【参考方案1】:

问题是我忘记在“功能”选项卡的“后台模式”中添加“远程通知”。现在一切正常。

【讨论】:

以上是关于无法接收 iOS 的 FCM 推送通知的主要内容,如果未能解决你的问题,请参考以下文章

无法接收 FCM 推送通知 IOS - 目标 C

iOS 无法通过 FCM 接收推送通知(可以通过 APNs)

Swift 5 - 无法通过 FCM 接收推送通知

如何在应用程序处于后台(ios)时使 FCM 通知正常工作?

如何在 ios 中单击通知时接收数据,当应用程序被杀死时,(react-native-fcm 模块在 IOS 中获取推送通知)

无法在苹果商店的 ios 设备上接收通知(fcm)