Firebase推送通知无法在iOS上进行生产

我将Firebase Messaging SDK集成到我的iOS项目中,创建了一个用于开发的推送通知证书和一个用于生产的推送通知证书,将两个p12密钥上传到Firebase并且我没有收到通知,但仅用于开发。

注册代码很好,和我常用的APNS一样,工作正常。

3个应用程序也会出现相同的行为。

别人遇到这个问题了吗? 你有任何解决方案或建议吗?

我遇到过同样的问题。 显然,Firebase文档中存在错误。 将生产的APN证书密钥导出到.p12文件时,必须选择实际的证书, 而不是私钥

确保在Cloud Messaging APN证书设置中将此.p12文件上载到Firebase控制台。

还要确保你正在使用:

FIRInstanceID.instanceID().setAPNSToken(deviceToken, type: .prod) 

内:

 func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) 

首先检查您要导出的证书。 典型的错误是导出私钥而不是服务。 我附上了截图。 我希望这能为你节省一些时间。

正确的证书导出

我按照以下步骤开始工作:

  1. 从Apple开发人员门户重新生成配置文件
  2. 删除旧的
  3. 在firebase控制台上更新新配置文件
  4. 使AppDelegate符合UNUserNotificationCenterDelegate协议
  5. 确保所有注册到APNS都正确完成(有很多教程如何做到这一点)
  6. 确保在app启动时调用configureFirebase
  7. 从firebase控制台发送消息

似乎第4步有所不同。

对我来说,这些步骤解决了生产中的相同问题:

  1. 在Apple Developer门户上,转到Keys – > Add key 在此处输入图像描述

  2. 下载密钥,复制密钥ID参数

  3. 打开Firebase控制台 – >项目设置 – >云消息传递
  4. 上传您下载的.p8密钥(步骤2): 在此处输入图像描述
  5. 在新窗口中粘贴密钥ID参数和您的App ID前缀根据需要