From 28376d7c536f8ed446ee6e223a540692b48eb312 Mon Sep 17 00:00:00 2001 From: louisehsu Date: Tue, 1 Sep 2026 15:38:37 -0700 Subject: [PATCH] Migrate standard sample apps to UIScene lifecycle --- animations/ios/Runner/AppDelegate.swift | 11 ++++++---- animations/ios/Runner/Info.plist | 21 +++++++++++++++++++ .../ios/Runner/AppDelegate.swift | 7 +++++-- asset_transformation/ios/Runner/Info.plist | 21 +++++++++++++++++++ compass_app/app/ios/Runner/AppDelegate.swift | 9 +++++--- compass_app/app/ios/Runner/Info.plist | 21 +++++++++++++++++++ .../ios/Runner/AppDelegate.swift | 7 +++++-- cupertino_gallery/ios/Runner/Info.plist | 21 +++++++++++++++++++ date_planner/ios/Runner/AppDelegate.swift | 7 +++++-- date_planner/ios/Runner/Info.plist | 21 +++++++++++++++++++ dynamic_theme/ios/Runner/AppDelegate.swift | 11 ++++++---- dynamic_theme/ios/Runner/Info.plist | 21 +++++++++++++++++++ form_app/ios/Runner/AppDelegate.swift | 11 ++++++---- form_app/ios/Runner/Info.plist | 21 +++++++++++++++++++ material_3_demo/ios/Runner/AppDelegate.swift | 11 ++++++---- material_3_demo/ios/Runner/Info.plist | 21 +++++++++++++++++++ .../ios/Runner/AppDelegate.swift | 11 ++++++---- navigation_and_routing/ios/Runner/Info.plist | 21 +++++++++++++++++++ .../example/ios/Runner/AppDelegate.swift | 11 ++++++---- pedometer/example/ios/Runner/Info.plist | 21 +++++++++++++++++++ platform_design/ios/Runner/AppDelegate.swift | 11 ++++++---- platform_design/ios/Runner/Info.plist | 21 +++++++++++++++++++ simple_shader/ios/Runner/AppDelegate.swift | 11 ++++++---- simple_shader/ios/Runner/Info.plist | 21 +++++++++++++++++++ 24 files changed, 329 insertions(+), 41 deletions(-) diff --git a/animations/ios/Runner/AppDelegate.swift b/animations/ios/Runner/AppDelegate.swift index 70693e4a8..c30b367ec 100644 --- a/animations/ios/Runner/AppDelegate.swift +++ b/animations/ios/Runner/AppDelegate.swift @@ -1,13 +1,16 @@ -import UIKit import Flutter +import UIKit -@UIApplicationMain -@objc class AppDelegate: FlutterAppDelegate { +@main +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/animations/ios/Runner/Info.plist b/animations/ios/Runner/Info.plist index a6d2ff85d..0724330bc 100644 --- a/animations/ios/Runner/Info.plist +++ b/animations/ios/Runner/Info.plist @@ -24,6 +24,27 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/asset_transformation/ios/Runner/AppDelegate.swift b/asset_transformation/ios/Runner/AppDelegate.swift index 626664468..c30b367ec 100644 --- a/asset_transformation/ios/Runner/AppDelegate.swift +++ b/asset_transformation/ios/Runner/AppDelegate.swift @@ -2,12 +2,15 @@ import Flutter import UIKit @main -@objc class AppDelegate: FlutterAppDelegate { +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/asset_transformation/ios/Runner/Info.plist b/asset_transformation/ios/Runner/Info.plist index 10bfdec30..d59367c3a 100644 --- a/asset_transformation/ios/Runner/Info.plist +++ b/asset_transformation/ios/Runner/Info.plist @@ -24,6 +24,27 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/compass_app/app/ios/Runner/AppDelegate.swift b/compass_app/app/ios/Runner/AppDelegate.swift index 9074fee92..c30b367ec 100644 --- a/compass_app/app/ios/Runner/AppDelegate.swift +++ b/compass_app/app/ios/Runner/AppDelegate.swift @@ -1,13 +1,16 @@ import Flutter import UIKit -@UIApplicationMain -@objc class AppDelegate: FlutterAppDelegate { +@main +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/compass_app/app/ios/Runner/Info.plist b/compass_app/app/ios/Runner/Info.plist index e8a8df16d..ed33ebafc 100644 --- a/compass_app/app/ios/Runner/Info.plist +++ b/compass_app/app/ios/Runner/Info.plist @@ -24,6 +24,27 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/cupertino_gallery/ios/Runner/AppDelegate.swift b/cupertino_gallery/ios/Runner/AppDelegate.swift index 626664468..c30b367ec 100644 --- a/cupertino_gallery/ios/Runner/AppDelegate.swift +++ b/cupertino_gallery/ios/Runner/AppDelegate.swift @@ -2,12 +2,15 @@ import Flutter import UIKit @main -@objc class AppDelegate: FlutterAppDelegate { +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/cupertino_gallery/ios/Runner/Info.plist b/cupertino_gallery/ios/Runner/Info.plist index a8ead9290..6eaf62432 100644 --- a/cupertino_gallery/ios/Runner/Info.plist +++ b/cupertino_gallery/ios/Runner/Info.plist @@ -24,6 +24,27 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/date_planner/ios/Runner/AppDelegate.swift b/date_planner/ios/Runner/AppDelegate.swift index 626664468..c30b367ec 100644 --- a/date_planner/ios/Runner/AppDelegate.swift +++ b/date_planner/ios/Runner/AppDelegate.swift @@ -2,12 +2,15 @@ import Flutter import UIKit @main -@objc class AppDelegate: FlutterAppDelegate { +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/date_planner/ios/Runner/Info.plist b/date_planner/ios/Runner/Info.plist index c836cd5dd..cb423ae71 100644 --- a/date_planner/ios/Runner/Info.plist +++ b/date_planner/ios/Runner/Info.plist @@ -24,6 +24,27 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/dynamic_theme/ios/Runner/AppDelegate.swift b/dynamic_theme/ios/Runner/AppDelegate.swift index 70693e4a8..c30b367ec 100644 --- a/dynamic_theme/ios/Runner/AppDelegate.swift +++ b/dynamic_theme/ios/Runner/AppDelegate.swift @@ -1,13 +1,16 @@ -import UIKit import Flutter +import UIKit -@UIApplicationMain -@objc class AppDelegate: FlutterAppDelegate { +@main +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/dynamic_theme/ios/Runner/Info.plist b/dynamic_theme/ios/Runner/Info.plist index 5c12ce8d0..5cd7d05ea 100644 --- a/dynamic_theme/ios/Runner/Info.plist +++ b/dynamic_theme/ios/Runner/Info.plist @@ -24,6 +24,27 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/form_app/ios/Runner/AppDelegate.swift b/form_app/ios/Runner/AppDelegate.swift index 70693e4a8..c30b367ec 100644 --- a/form_app/ios/Runner/AppDelegate.swift +++ b/form_app/ios/Runner/AppDelegate.swift @@ -1,13 +1,16 @@ -import UIKit import Flutter +import UIKit -@UIApplicationMain -@objc class AppDelegate: FlutterAppDelegate { +@main +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/form_app/ios/Runner/Info.plist b/form_app/ios/Runner/Info.plist index e374d3bf7..44f08d9c2 100644 --- a/form_app/ios/Runner/Info.plist +++ b/form_app/ios/Runner/Info.plist @@ -24,6 +24,27 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/material_3_demo/ios/Runner/AppDelegate.swift b/material_3_demo/ios/Runner/AppDelegate.swift index 70693e4a8..c30b367ec 100644 --- a/material_3_demo/ios/Runner/AppDelegate.swift +++ b/material_3_demo/ios/Runner/AppDelegate.swift @@ -1,13 +1,16 @@ -import UIKit import Flutter +import UIKit -@UIApplicationMain -@objc class AppDelegate: FlutterAppDelegate { +@main +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/material_3_demo/ios/Runner/Info.plist b/material_3_demo/ios/Runner/Info.plist index 45576eaa6..e10675a9f 100644 --- a/material_3_demo/ios/Runner/Info.plist +++ b/material_3_demo/ios/Runner/Info.plist @@ -24,6 +24,27 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/navigation_and_routing/ios/Runner/AppDelegate.swift b/navigation_and_routing/ios/Runner/AppDelegate.swift index 70693e4a8..c30b367ec 100644 --- a/navigation_and_routing/ios/Runner/AppDelegate.swift +++ b/navigation_and_routing/ios/Runner/AppDelegate.swift @@ -1,13 +1,16 @@ -import UIKit import Flutter +import UIKit -@UIApplicationMain -@objc class AppDelegate: FlutterAppDelegate { +@main +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/navigation_and_routing/ios/Runner/Info.plist b/navigation_and_routing/ios/Runner/Info.plist index 9a04f33d2..8fa2a4c56 100644 --- a/navigation_and_routing/ios/Runner/Info.plist +++ b/navigation_and_routing/ios/Runner/Info.plist @@ -24,6 +24,27 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/pedometer/example/ios/Runner/AppDelegate.swift b/pedometer/example/ios/Runner/AppDelegate.swift index 70693e4a8..c30b367ec 100644 --- a/pedometer/example/ios/Runner/AppDelegate.swift +++ b/pedometer/example/ios/Runner/AppDelegate.swift @@ -1,13 +1,16 @@ -import UIKit import Flutter +import UIKit -@UIApplicationMain -@objc class AppDelegate: FlutterAppDelegate { +@main +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/pedometer/example/ios/Runner/Info.plist b/pedometer/example/ios/Runner/Info.plist index 15dfe789c..94524e532 100644 --- a/pedometer/example/ios/Runner/Info.plist +++ b/pedometer/example/ios/Runner/Info.plist @@ -26,6 +26,27 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + NSMotionUsageDescription Live stream pedometer UIApplicationSupportsIndirectInputEvents diff --git a/platform_design/ios/Runner/AppDelegate.swift b/platform_design/ios/Runner/AppDelegate.swift index 70693e4a8..c30b367ec 100644 --- a/platform_design/ios/Runner/AppDelegate.swift +++ b/platform_design/ios/Runner/AppDelegate.swift @@ -1,13 +1,16 @@ -import UIKit import Flutter +import UIKit -@UIApplicationMain -@objc class AppDelegate: FlutterAppDelegate { +@main +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/platform_design/ios/Runner/Info.plist b/platform_design/ios/Runner/Info.plist index e92f26f77..d3f9fd384 100644 --- a/platform_design/ios/Runner/Info.plist +++ b/platform_design/ios/Runner/Info.plist @@ -24,6 +24,27 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/simple_shader/ios/Runner/AppDelegate.swift b/simple_shader/ios/Runner/AppDelegate.swift index 70693e4a8..c30b367ec 100644 --- a/simple_shader/ios/Runner/AppDelegate.swift +++ b/simple_shader/ios/Runner/AppDelegate.swift @@ -1,13 +1,16 @@ -import UIKit import Flutter +import UIKit -@UIApplicationMain -@objc class AppDelegate: FlutterAppDelegate { +@main +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/simple_shader/ios/Runner/Info.plist b/simple_shader/ios/Runner/Info.plist index 29cfd74e1..5df9796f8 100644 --- a/simple_shader/ios/Runner/Info.plist +++ b/simple_shader/ios/Runner/Info.plist @@ -24,6 +24,27 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile