iOS 在 Cordova 项目 (2018) 上无法收到来自 FCM 的推送通知

iOS cannot receive push notification from FCM on Cordova project (2018)

几天来我一直被这个问题困扰(又一次!)。 FCM 推送通知在 Android 和我当前的 live/prd 版本的应用程序上运行良好(仍然 运行ning 并且运行良好)。但最近我升级到 Cordova 7.1.0, platform iOS 4.4.0 并为我的下一次更新重新添加所有插件应用程序。

除 iOS 上的 FCM 外一切正常!!!!不适用于所有版本和所有 iOS 设备。我以前遇到过这个问题,但很容易解决(FCM 插件上缺少 GoogleService-Info.plist 文件)。但是目前这个问题又出现了,我真的不知道如何解决。经历了很多问题并尝试了很多事情。

我完成的步骤:

  1. 删除并重新添加 FCM 插件和平台 iOS
  2. 检查并确保 GoogleService-Info.plist 上的文件不为空:Cordova-plugin-fcm > src > ios;平台 > ios > [myproject] > 资源;平台 > ios > [myproject] > 资源 > 资源
  3. 测试从 firebase 控制台发送推送通知。它说完成并发送!但未在 iOS 收到(在 Android 收到)
  4. 在 Xcode 功能中打开和关闭然后再次打开:推送通知以及后台模式 > 远程通知和钥匙串共享
  5. 检查 [myproject].entitlements > 具有开发价值的 APS 在那里
  6. 在 info.plist
  7. 上添加 FirebaseAppDelegateProxyEnabled 值 NO
  8. 检查我的APNS密钥和证书的有效性通过:openssl s_client -connect gateway.push.apple.com:2195 -cert pushtry.pem -key pushtry.pem和return最后验证码0(OK)
  9. 尝试在 http://pushtry.com 上测试 APNS,但结果显示 Arvind APNS 连接失败:0。当我尝试从同一网站发送 FCM 推送时,发送成功(在 Android 上收到,而不是在 iOS 上收到)任何人都知道如何正确地 运行 这个结果应该是什么是?
  10. 检查所有配置文件和证书并确保它们尚未过期。我确实拥有用于开发和生产的 Apple Push 服务。
  11. 仔细检查 bundle ID 和 APP ID 以匹配 Firebase 控制台设置。

我运行 Xcode 10 的应用程序有多个 iPhone 从 iOS 11 到 12。都无法收到推送通知。但是当我从 Play 商店下载我的应用程序时,它仍在接收推送通知。 FCM 插件版本是 cordova-plugin-fcm 2.1.2.

请帮忙!除了上述所有这些,我还应该做什么和检查?我需要尽快更新应用程序。但是我很害怕更新后,所有带有新更新的应用程序的实时版本都不会收到推送通知,这对我们的应用程序非常重要!

我怀疑配置文件与代码签名身份不匹配,但我已经 1 年多没有更改它们了(仅在证书过期后更新和重新创建证书)。我不认为这是来自 FCM 的问题,因为它发出了推送通知并且在 android 上没有问题。但话又说回来,我的应用程序的最后一次更新是两个月前。之后我很少检查 iPhone(尤其是推送通知),因为我没有。总是用 Android phone 做我的开发。所以也许我错过了什么?请提供建议和解决方案?

我开发的应用程序的所有版本(我的本地 MAC)现在都无法运行。即使我尝试构建和 运行 我的应用程序的旧版本。未收到推送通知。所以也许是我的科尔多瓦或 iOS 问题。

我有同样的问题并通过更改 XCode 构建系统解决了它:

XCODE 文件 > 项目设置 >(使用 Legacy Build 系统而不是 New Build 系统。)

同时从 info.plist

中删除 FirebaseAppDelegateProxyEnabled

对我来说,问题不是将 IOS APNs Auth Key 附加到我的项目的 firebase 云消息传递。我是个笨蛋。