You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS集成flutter_local_notifications启动崩溃,提示重复插件键FilePickerPlugin

iOS端集成flutter_local_notifications启动崩溃问题解决方案

问题排查与修复步骤

1. 移除重复的插件注册调用

你的代码中存在两次GeneratedPluginRegistrant.register调用:一次在setPluginRegistrantCallback闭包内,另一次在闭包外单独执行。重复注册会引发插件初始化冲突,导致启动崩溃。

修改后的代码移除闭包外的冗余注册:

import UIKit
import Firebase
import Flutter
import flutter_local_notifications

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    FirebaseApp.configure()
    
    FlutterLocalNotificationsPlugin.setPluginRegistrantCallback { (registry) in
        GeneratedPluginRegistrant.register(with: registry)
    }

    if #available(iOS 10.0, *){
        UNUserNotificationCenter.current().delegate = self
    }
    
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

2. 优化初始化顺序

确保FlutterLocalNotificationsPlugin.setPluginRegistrantCallback在super.application(...)调用前执行,依托super的初始化逻辑完成基础配置,避免初始化时机冲突。

3. 修正UNUserNotificationCenterDelegate设置

FlutterAppDelegate已默认实现UNUserNotificationCenterDelegate协议,无需强制类型转换,直接设置delegate = self即可,规避类型转换可能引发的异常。

4. 清理并重新安装依赖

  • 执行pod deintegrate清理旧Pod依赖,再运行pod install重新安装插件
  • 清理Xcode缓存(Cmd+Shift+K),重启Xcode后重新编译运行

5. 验证版本兼容性

检查flutter_local_notifications版本与当前Flutter SDK是否兼容,避免因版本不匹配导致的初始化异常。

内容的提问来源于stack exchange,提问作者Nissaba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 07:02:46