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

Flutter 3.24.0升级后iOS AppDelegate.swift@UIApplicationMain弃用问题解决

问题解答

1. 更新AppDelegate.swift移除@UIApplicationMain警告的推荐方式

Flutter 3.24之后,iOS端不再推荐直接在AppDelegate类上使用@main(原@UIApplicationMain的语法糖),正确的做法是通过单独的main.swift文件来启动应用:

  1. 在ios/Runner目录下新建main.swift文件,添加以下代码:
import UIKit
import Flutter

// 指定AppDelegate作为应用代理类
let appDelegateClassName = NSStringFromClass(AppDelegate.self)
// 手动调用UIApplicationMain启动应用
UIApplicationMain(CommandLine.argc, CommandLine.unsafeArgv, nil, appDelegateClassName)
  1. 打开你的AppDelegate.swift,删除类上方的@main标记,修改后的类定义如下:
@objc class AppDelegate: FlutterAppDelegate {
  // 原有代码保持不变...
}

这样就完全替换了@main的功能,同时消除了弃用警告。

2. 升级Flutter 3.24.0时iOS开发需注意的变更

  • 最低系统版本提升:Flutter 3.24要求iOS部署目标至少为iOS 14.0,需要在Xcode中打开项目,将Runner target的Deployment Info里的iOS Version调整为14.0或更高。
  • 废弃API清理:移除了对iOS 13及以下版本的支持,项目中针对iOS 13的适配代码(比如旧版通知、UIKit兼容逻辑)可以清理。
  • CocoaPods依赖更新:升级后需要进入ios目录执行pod install,确保所有Flutter插件和iOS原生依赖适配最新引擎版本。
  • 插件兼容性:部分旧版Flutter插件可能不兼容3.24版本,需要检查pubspec.yaml中的插件版本,升级到支持Flutter 3.24的最新版(比如firebase_messaging、flutter_local_notifications等)。
  • SwiftUI集成优化:如果项目使用SwiftUI,Flutter提供了更流畅的FlutterViewController集成方式,可按需调整现有SwiftUI页面的Flutter嵌入逻辑。

3. 针对@UIApplicationMain弃用警告的解决方案

直接采用上述第一个问题中的修改方式即可:

  • 创建main.swift手动启动应用
  • 删除AppDelegate.swift中的@main标记

这个方案完全符合Flutter 3.24之后的iOS项目架构规范,同时彻底消除警告。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 23:17:42