firebase react-native 推送通知适用于 iOS 发布版本,但不适用于通过 App Store 发布的应用程序
Posted
技术标签:
【中文标题】firebase react-native 推送通知适用于 iOS 发布版本,但不适用于通过 App Store 发布的应用程序【英文标题】:firebase react-native push notifications working for iOS release builds, but do not work in app released via App Store 【发布时间】:2018-01-10 16:23:37 【问题描述】:我的推送通知在 android 上的 Google Play 发布版本中按预期工作,平视显示器按预期显示。我还通过 Xcode 在发布版本中按预期工作了推送通知。
问题:在通过 App Store 发布的 ios 版本中没有按预期显示推送通知。
我创建了一个新的APNs Authentication Key
并将其上传到 Firebase
我已开启 swizzling
在 Xcode 中启用自动签名
Firebase、Xcode 和 plist 中的包 ID 相同
我的包版本控制:
"firebase": "^4.8.1",
"firebase-admin": "^5.7.0",
没有错误或崩溃,只是没有显示推送通知。我还更新了 firebase 库,但不确定它是否有任何效果。
我没有使用证书,Firebase 建议使用 APNs 身份验证密钥:
【问题讨论】:
您的代码签名身份设置是什么样的? 你也试过这个吗? ***.com/questions/41169460/… @peter-tao 请查看对原始帖子的编辑以获取两个问题的答案。 尝试将您的 Release Code Signing Identity 设置为 iOS Distribution。归档应用,在手机上安装临时版本,并测试是否可以接收推送通知。 好的,因此将通过在原始问题中添加一些信息来解决此问题。我正在使用firebase-admin
包并通过admin.messaging().sendToDevice(tokens, notification, options)
发送通知。使用这个我添加了content_available: true
,这是ios读取aps有效负载并使应用程序即使在后台也可用的方式,但是firebase-admin
文档参数实际上是contentAvailable: true
并在此之后正确映射到ios。
【参考方案1】:
TL;DR
因此,总而言之,contentAvailable: true
必须在使用 firebase-admin
并通过以下方式向后台 ios 应用程序发送仅数据负载推送通知时在选项参数中设置:
const options =
priority: "high",
contentAvailable: true, // NOT content_available: true
admin.messaging().sendToDevice(tokens, notification, options)
...
【讨论】:
以上是关于firebase react-native 推送通知适用于 iOS 发布版本,但不适用于通过 App Store 发布的应用程序的主要内容,如果未能解决你的问题,请参考以下文章
使用firebase推送通知中的onTokenRefresh与getToken有啥区别?