iOS Firebase 推送通知在 Xcode 11.5 和 iOS 13 的模拟器上不起作用

Posted

技术标签:

【中文标题】iOS Firebase 推送通知在 Xcode 11.5 和 iOS 13 的模拟器上不起作用【英文标题】:iOS Firebase Push notification not working on simulator with Xcode 11.5 and iOS 13 【发布时间】:2020-10-12 06:27:17 【问题描述】:

我尝试过 Firebase 推送通知,但它不起作用。远程消息显示在带有有效负载的控制台上,但未在模拟器上显示通知。我使用 Xcode 11.5 和 ios 13。

    将 GoogleService-Info.plist 添加到根文件夹 完成了 Firebase 推送通知所需的所有代码 在 Firebase 控制台上上传了 .p12 文件 在 Xcode 上添加了推送通知功能

【问题讨论】:

能否提供更详细的信息? 我尝试在模拟器(Xcode 11.5 和 iOS 13)上获取推送通知,我尝试了所有方法,但仍然缺少一些东西。消息(有效负载)显示在控制台上(使用 remoteMessage.appdata),但没有显示在模拟器上。 UNUserNotificationCenter 不工作。从 firebase 控制台发送通知时,只调用了 didReceiveMessage 方法,而不调用其他方法。谢谢 【参考方案1】:

您可以关注this article 在模拟器中测试推送通知。要测试直接从 firebase 发送的远程通知,您将需要一个物理设备。我使用的是 xcode 11.6,在注册过程中它在控制台中显示一条消息:Error! iOS Simulator does not support push! Please test on a real iOS device. remote notifications are not supported in the simulator

以下是在模拟器中测试推送通知的总结:

注册推送通知并确保您允许。 创建一个文件名为:test_push_notification.apns 只需根据您的应用替换捆绑标识符,即可在新创建的文件中添加并保存以下 JSON。 "Simulator Target Bundle": "com.yourapp.bundleid", "aps": "alert": "title": "推送模拟器", "subtitle": "测试推送通知", " body": "此通知将显示在模拟器中!" 打开终端并导航到您保存文件的目录。 运行此命令xcrun simctl push booted test_push_notification.apns

【讨论】:

感谢您的回复,我尝试了上述解决方案,但收到如下错误,处理命令时遇到错误 (domain=NSCocoaErrorDomain, code=3840): The data could not be read because it格式不正确。数据格式不正确。 此消息表示系统无法解析 json。复制我也在答案中发布的正确 json。 这里可能是 .apns 文件格式, "Simulator Target Bundle": "my projects bundle identifier", "aps": "alert": "title": "Push on the simulator" , "subtitle": "测试推送通知", "body": "这个通知会出现在模拟器中!"

以上是关于iOS Firebase 推送通知在 Xcode 11.5 和 iOS 13 的模拟器上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 ionic cordova 和 firebase 中为 iOS 应用程序设置推送通知

如何使用 Firebase 推送通知服务而不在自定义创建的框架 Xcode 中添加 GoogleService-Info.plist 文件

Firebase推送通知在iOS 11中无效

Firebase推送通知如何在IOS上运行?

Firebase 推送通知 iOS:未注册。为啥?

Firebase 推送通知如何在 IOS 上工作?