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

Flutter 2.10.5 iOS构建失败:AppDelegate.swift多类错误求助

问题分析与解决

这些错误的根本原因是你的AppDelegate.swift文件里混入了Objective-C语法,Swift编译器无法识别OC的语法规则,因此抛出编译错误。这并非Flutter生成代码的问题,大概率是手动修改代码时误将OC代码粘贴进Swift文件,或是某个插件的配置脚本出错导致写入了错误代码。

具体修复步骤:

  1. 打开项目中的ios/Runner/AppDelegate.swift文件,定位到报错的第11-12行代码:
// 错误的OC风格代码
if (@available(iOS 10.0, *)) {
    [UNUserNotificationCenter currentNotificationCenter].delegate = (id<UNUserNotificationCenterDelegate>) self;
}
  1. 将这段代码替换为符合Swift语法的写法:
// 正确的Swift代码
if #available(iOS 10.0, *) {
    UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
}
  1. 额外检查:确保AppDelegate类已声明遵循UNUserNotificationCenterDelegate协议,避免委托赋值警告,修改类声明如下:
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate, UNUserNotificationCenterDelegate {
    // 你的其他代码...
}

错误点说明:

  • Swift的系统版本可用性检查用#available,而非OC的@available
  • Swift获取UNUserNotificationCenter单例用current()方法,OC的currentNotificationCenter类方法在Swift中不兼容
  • Swift的类型转换用as?/as!,OC的(id<Protocol>)强制转换语法在Swift中无效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 03:45:37