错误:ios 上没有这样的模块“FirebaseInstanceID”

Posted

技术标签:

【中文标题】错误:ios 上没有这样的模块“FirebaseInstanceID”【英文标题】:error: no such module 'FirebaseInstanceID' on ios 【发布时间】:2021-08-04 22:12:09 【问题描述】:

我正在尝试运行我的代码并不断告诉我

error: no such module 'FirebaseInstanceID'
    import FirebaseInstanceID

我在 AppDelegate.swift 中的代码

import UIKit
import Flutter

import Firebase
import FirebaseAuth
import UserNotifications
import FirebaseInstanceID

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate 
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool 
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  
  
   override func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) 
        let firebaseAuth = Auth.auth()
        firebaseAuth.setAPNSToken(deviceToken, type: AuthAPNSTokenType.unknown)

    
    override func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) 
        let firebaseAuth = Auth.auth()
        if (firebaseAuth.canHandleNotification(userInfo))
            print(userInfo)
            return
        
    
    

我认为我的 pod 中丢失了,我不知道如何将它安装到我的 pod 文件中。

【问题讨论】:

【参考方案1】:

FirebaseInstanceID 现在已弃用,这就是出现此错误的原因。从您的 AppDelegate.swift 中删除 import FirebaseInstanceID 并改为添加 import FirebaseMessaging,因为现在直接在消息传递实例上提供 FCM 令牌。现在将didRegisterForRemoteNotificationsWithDeviceTokenInstanceID的代码替换成这个

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) 
    Messaging.messaging().apnsToken = deviceToken
    Messaging.messaging().token  (token, error) in
        if let error = error 
            print("Error fetching remote instance ID: \(error.localizedDescription)")
         else if let token = token 
            print("Token is \(token)")
        
    

【讨论】:

【参考方案2】:

2021 年 7 月 19 日更新

删除 FirebaseInstanceID 并安装 Firebase Messaging 最新版本..

我稍后通过安装 Firebase 消息传递插件

解决了这个问题

Firebase messaging Plugin

【讨论】:

以上是关于错误:ios 上没有这样的模块“FirebaseInstanceID”的主要内容,如果未能解决你的问题,请参考以下文章

Socket.IO 错误:zlib 没有这样的模块(Swift 3,Xcode 8.3)

ios sqlite fts 扩展“没有这样的模块 fts4”错误

如何解决 Xcode 构建错误“没有这样的模块 RxCocoa”?

xcode:没有这样的模块“翠鸟”

颤振错误:没有这样的模块“谷歌地图”

错误:可可pod框架的“没有这样的模块”