【问题标题】:Can't receive FCM Push Notifications for iOS无法接收 iOS 的 FCM 推送通知
【发布时间】: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 版本)所以我找不到合适的解决方案。

【问题讨论】:

    标签: ios firebase apple-push-notifications firebase-cloud-messaging


    【解决方案1】:

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

    【讨论】:

      最近更新 更多