我正在尝试将 Firebase Messaging 添加到我的 iOS 应用程序中。我已按照 Firebase 文档 中的步骤操作,即:
[FIRApp configure]
@import FirebaseMessaging
导入 Firebase Messaging 并添加 FIRMessagingDelegate
但是此时我收到错误:
@interface AppDelegate () <UNUserNotificationCenterDelegate, FIRMessagingDelegate>
// Cannot find protocol declaration for FIRMessagingDelegate
我已经更新了我的 Pod(根据 Stack Overflow 上发现的类似问题建议),但仍然遇到相同的错误。为了确认,运行
pod update
会给出以下输出:
Using FirebaseMessaging (1.2.2)
有什么建议吗?
问题似乎是在新的
FIRMessagingDelegate
框架中声明了 FirebaseMessaging
协议。
只需添加:
@import FirebaseMessaging;
以及示例应用程序
AppDelegate.m
:
https://github.com/firebase/quickstart-ios/blob/master/messaging/MessagingExample/AppDelegate.m#L62-L85
我发现这在 pod 文件中很有用:
pod 'Firebase/Messaging'
to
pod 'Firebase/Messaging', '~> 4.0.0'
现在已找到所有依赖项。
因为我的搜索把我带到了这里,所以要在这里分享:
如果您使用 Swift 并收到此错误,则所有名称中都删除了“FIR”前缀,因此您只需使用“MessagingDelegate”而不是“FIRMessagingDelegate”
来源:https://firebase.google.com/docs/reference/swift/naming-migration-guide
我的应用程序最初是用 Objective-C 编写的,后来转换为 Swift;我认为原始海报就是这种情况,因为和我的一样,错误似乎发生在 Swift Bridging Header(Xcode 生成的)中。
我通过将此行添加到我的 Objective-C 桥接头 (AppName-Bridging-Header.h) 中解决了这个问题:
#import <FirebaseMessaging/FirebaseMessaging.h>