无法接收iOS的FCM推送通知

无法接收iOS的FCM推送通知

问题描述:

我正在尝试使用Firebase Cloud Messaging(FCM)SDK将推送通知发送到iOS设备.我创建了一个非常简单的应用程序,该应用程序具有一个空的ViewController和一个由

I'm trying to use the Firebase Cloud Messaging (FCM) SDK to send push notification to iOS devices. I created a very simple application which has an empty ViewController and an AppDelegate copied by that provided in the quick start iOS project.

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

I followed all the instructions provided in the guide:

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

Installed SDK using pod, here is my 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的功能"标签中添加了推送通知
  • 在Apple开发人员门户上生成的APNs身份验证密钥和APPID(APPID由Xcode自动生成)
  • 在Firebase开发人员控制台中为我的应用程序创建了一个新项目,下载并复制了项目根目录中的GoogleService-Info.plist文件
  • 在Firebase开发者控制台中上载了APNs身份验证密钥
  • 安装了应用程序并将其置于后台(当应用程序处于前台时通知不会出现)
    • Added the push notification in the "Capabilities" Tab in Xcode
    • Generated APNs authentication key and APPID (the APPID was automatically generated by Xcode) on the apple developer portal
    • Created a new project for my application in the Firebase developer console, downloading and copying the GoogleService-Info.plist file in the root directory of the project
    • Uploaded the APNs authentication key in the Firebase developer console
    • Installed the app and put it in background (notifications do not appear when app is in foreground)
    • 应用程序启动时,将正确返回FCM令牌.然后,我在FCM推送通知控制台中使用此令牌以发送消息,但没有任何反应:即使控制台说消息已完成",也不会收到通知.

      When the application starts, it correctly returns an FCM token. Then I use this token in the FCM push notification console in order to send a message but nothing happens: notification is not received even if the console says that the message has been "completed"

      尝试发送带有curl的通知

      Trying to send the notification with 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,我想一切都很好,但是我仍然没有收到通知.

Since success is equal to 1 i guess that all is ok but I still get no notifications.

我用谷歌搜索了问题的可能原因,但似乎Firebase Messaging Libraries最近已更改(pod说我正在使用FirebaseMessaging 2.0.3版本),所以我找不到合适的解决方案.

I googled for a possibile cause of the problem but it seems that Firebase Messaging Libraries have been recently changed (pod says I'm using the FirebaseMessaging 2.0.3 version) so i can't find a proper solution.

问题是我忘记在功能"选项卡的背景模式"中添加远程通知".现在一切正常.

The problem was I forgot to add "Remote notification" in the "Background Modes" in the "Capabilities" tab. Now it's all working as expected.