适用于 iOS 的 Google Firebase 推送通知在生产环境中不起作用

Posted

技术标签:

【中文标题】适用于 iOS 的 Google Firebase 推送通知在生产环境中不起作用【英文标题】:Google Firebase Push Notifications for iOS are not working in production environment 【发布时间】:2016-12-26 08:09:06 【问题描述】:

我正在使用 Google Firebase Cloud Messaging API (FCM) 向我的 ios 应用发送推送通知。 当我在具有开发配置文件 + 开发推送通知(沙盒)证书的设备上测试应用程序时,我可以获得成功的推送通知。

但是我无法让它在生产环境中运行。我使用正确的生产配置文件和生产推送通知证书进行了临时构建。并通过 iTunes 将 IPA 文件同步到设备进行测试(不是直接来自 xcode)。我仍然无法收到来自 firebase 控制台的推送通知。

我也已将正确的开发和生产证书(带有私钥)上传到 firebase。我已经仔细检查了每个可能出错的步骤,但仍然找不到问题。 有没有办法解决这个问题?还是无法将生产环境通知发送到 AdHoc 构建?

【问题讨论】:

请解释为什么投反对票? 您是否将设备令牌发送到 Firebase? 我的意思是你把这个方法称为[[FIRInstanceID instanceID] setAPNSToken:deviceToken type:FIRInstanceIDAPNSTokenTypeProd]; 我没有将FirebaseAppDelegateProxyEnabled 设置为NO 来调用该方法。但我也试过这种方法。它没有用。 我做得更好!我使用 testflight 的外部构建进行了测试;) 【参考方案1】:

我有同样的问题。显然 Firebase 文档中存在错误。当您将用于生产的 APN 证书从您的钥匙串导出到 .p12 文件时,您必须选择实际的证书,而不是私钥。

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

【讨论】:

经过无数小时尝试新的应用程序构建,这解决了我的问题!谢谢! 这应该包含在文档中。浪费了几个小时 当我右键单击证书时,我没有选择创建签名请求。该选项仅在我选择私钥时出现。我错过了什么吗? 令人难以置信的是,谷歌仍然没有纠正这个问题。 @BossGiveMeArrays 您必须在生成证书并将其下载到您的计算机后导出它【参考方案2】:

有同样的问题。终于搞定了:

    使用This 链接中提到的正确的ProjectTarget 构建设置。

    并撤销现有推送证书并完全创建一个新证书,然后将新证书的.p12 文件上传到 Firebase 控制台。

【讨论】:

【参考方案3】:

解决我的问题的是使用新的身份验证密钥方法而不是旧的 p12 文件。您可以在 Firebase 文档中阅读更多内容,只需按照他们的步骤操作即可。

【讨论】:

【参考方案4】:

我遇到了同样的问题。

对我有什么帮助:将用于分发证书的 APNS 添加到 Firebase。就这么简单;)

【讨论】:

以上是关于适用于 iOS 的 Google Firebase 推送通知在生产环境中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用私有Google存储的Firebase iOS SDK身份验证

将 google firebase 分析与 iOS 操作扩展一起使用

Flutter Web:google_sign_in_web:适用于桌面和 iOS。在 Android Chrome 上失败

致命异常:ScioFrontendApi 在使用适用于 Android 应用程序的 Firebase 升级 Google Play 服务时

Firebase邀请Beta App(Google Play商店测试版和iOS Testflight)

Firebase Invite for Beta 应用(Google Play 商店 Beta 和 iOS Testflight)