Flutter应用接收/点击Airship推送后iOS端崩溃问题
Flutter iOS端Airship推送通知崩溃问题
我们的Flutter应用仅iOS端在接收或点击Airship推送通知时出现崩溃,Android端运行正常。
报错信息
-[__NSCFType userNotificationCenter:willPresentNotification:withCompletionHandler:]: unrecognized selector sent to instance 0x283cad3b0 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType userNotificationCenter:willPresentNotification:withCompletionHandler:]: unrecognized selector sent to instance 0x283cad3b0' *** First throw call stack: (0x198f30cb4 0x191fd83d0 0x1990a5ab8 0x198f470e8 0x198fad900 0x102d66fc0 0x10456016c 0x102d66fc0 0x10456016c 0x103445300 0x1034437e4 0x19b39116c 0x19b1a04bc 0x19b1a0260 0x19b1a00a0 0x1aefa1a04 0x1aefa1840 0x1aefa505c 0x1aefa4f78 0x1a03f6eac 0x1a03fa91c 0x1aefaf188 0x1aefaed24 0x1aefb15d0 0x198ffa128 0x1990067b4 0x198f8b5e8 0x198fa10d4 0x198fa63ec 0x1d446b35c 0x19b3336e8 0x19b33334c 0x102ca5808 0x1b84a6dec) libc++abi: terminating due to uncaught exception of type NSException * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT frame #0: 0x00000001d7e9a558 libsystem_kernel.dylib`__pthread_kill + 8 libsystem_kernel.dylib`: -> 0x1d7e9a558 <+8>: b.lo 0x1d7e9a578 ; <+40> 0x1d7e9a55c <+12>: pacibsp 0x1d7e9a560 <+16>: stp x29, x30, [sp, #-0x10]! 0x1d7e9a564 <+20>: mov x29, sp
依赖配置
dependencies: airship_flutter: ^6.3.0 firebase_analytics: ^10.4.1 firebase_core: ^2.13.0 firebase_crashlytics: ^3.3.1 firebase_messaging: ^14.6.1 flutter: sdk: flutter flutter_bloc: ^8.1.2 flutter_localizations: sdk: flutter intl: ^0.17.0
问题原因及解决方法
这个报错属于iOS原生层方法调用异常,核心是通知代理对象被提前释放,系统尝试调用其不存在的方法。结合当前依赖和场景,可按以下步骤排查:
- 检查Airship iOS端配置:确认
AppDelegate或SceneDelegate中Airship的通知代理设置正确,没有重复绑定代理,也没有在生命周期中错误释放代理对象。 - 更新Airship插件版本:当前使用的
airship_flutter: ^6.3.0版本较旧,新版本大概率修复了代理生命周期管理的bug,建议升级到最新稳定版。 - 排查推送库集成冲突:Firebase Messaging和Airship均涉及推送通知处理,需确保初始化顺序正确(优先初始化Firebase Core,再初始化Airship),且两者的代理逻辑没有互相覆盖。
- 检查自定义通知逻辑:如果iOS原生代码中有自定义的通知处理方法,确认没有重复实现
userNotificationCenter:willPresentNotification:withCompletionHandler:,避免方法签名冲突或代理对象混乱。
内容的提问来源于stack exchange,提问作者Anna R.
相关产品推荐
相关产品推荐

