首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不叫Xcode12.5

不叫Xcode12.5
EN

Stack Overflow用户
提问于 2021-08-05 18:10:16
回答 1查看 54关注 0票数 0

我正在尝试通过Firebase在我的应用程序中实现推送通知。

我已经按照这里的说明进行了操作:https://firebase.google.com/docs/cloud-messaging/ios/first-message#register_for_remote_notifications,并授予权限。我得到了一个FCM令牌,但测试消息不起作用。

我发现一份调试指南建议我手动调用这些方法,但didRegisterForRemoteNotificationsWithDeviceTokendidFailToRegisterForRemoteNotificationsWithError从未被调用过。

显然,我认为这是一个代码或配置问题,但我试图排除它们,但没有这样的运气。当我在这里下载iOS示例应用程序时:https://github.com/firebase/quickstart-ios/tree/master/messaging/

一切都很好。我没有更改代码,只更改了包Id和GoogleServices-Info.plist。我得到了一个APNs返回,同样的推送工作很好。

因此,我将整个AppDelegate.swift复制到我的项目中。相同代码,相同App Id,启用推送通知,自动管理签名。它不起作用,未调用didRegisterForRemoteNotificationsWithDeviceToken

我能找到的唯一区别是:·示例应用程序没有使用SwiftUI。我正在使用UIApplicationDelegateAdaptor转发AppDelegate,而didFinishLaunchingWithOptions被调用得很好。我正在使用Swift包管理器而不是CocoaPods。代码编译得很好,并且没有错误消息。

以下是我所知道的相同之处:·匹配App委托。复制/粘贴。app中没有与通知相关的其他代码·匹配App功能·匹配App Id,GoogleServiceInfo.plist·匹配“自动管理签名”

在这一点上,我已经没有想法了。任何其他需要检查的建议都将是很好的。什么会导致didRegisterForRemoteNotificationsWithDeviceToken不被调用?

EN

回答 1

Stack Overflow用户

发布于 2021-08-06 14:04:52

我解决了这个问题。这最终导致SwiftUI应用程序默认不支持方法切换。相反,Firebase尝试拦截该方法失败,导致原始方法未被调用

使用建议的标志禁用swizzling,然后手动发送已解决此问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68671592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档