- Project:
gsy_github_app_flutter - Generated on: 2026-02-13
- Scope: iOS plugins listed in
.flutter-plugins-dependencies - Method: static source scan for Scene lifecycle compatibility signals (
FlutterSceneLifeCycleDelegate,addSceneDelegate, usage ofUIApplication.keyWindow/windows, and AppDelegate lifecycle hooks).
- Risk level: High
- Why:
- Uses deprecated window lookup via
UIApplication.shared.keyWindow, which is scene-unaware.
- Uses deprecated window lookup via
- Evidence:
/Users/guoshuyu/.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.6/ios/url_launcher_ios/Sources/url_launcher_ios/URLLauncherPlugin.swift:22
- Impact:
- In multi-scene/iPad multi-window mode, in-app Safari presentation may target the wrong scene or fail to present.
- Risk level: High
- Why:
- Multiple code paths still use
keyWindow/UIApplication.shared.windows, which can be incorrect under multi-scene.
- Multiple code paths still use
- Evidence:
/Users/guoshuyu/.pub-cache/hosted/pub.dev/flutter_inappwebview_ios-1.1.2/ios/Classes/HeadlessInAppWebView/HeadlessInAppWebView.swift:40/Users/guoshuyu/.pub-cache/hosted/pub.dev/flutter_inappwebview_ios-1.1.2/ios/Classes/UIApplication/VisibleViewController.swift:13/Users/guoshuyu/.pub-cache/hosted/pub.dev/flutter_inappwebview_ios-1.1.2/ios/Classes/WebAuthenticationSession/WebAuthenticationSession.swift:93
- Impact:
- Headless WebView attach point, visible view-controller resolution, and web-auth presentation anchor may bind to the wrong window/scene.
- Risk level: Medium
- Why:
- Chooses UI window via
UIApplication.sharedApplication.windowsand key-window iteration.
- Chooses UI window via
- Evidence:
/Users/guoshuyu/.pub-cache/hosted/pub.dev/fluttertoast-8.2.10/ios/Classes/FluttertoastPlugin.m:130
- Impact:
- Toast may appear on a non-active scene window or behave inconsistently in multi-window mode.
- Risk level: Low
- Why:
- Uses
connectedScenesandUIWindowScene.windowsfor root view-controller selection on iOS 13+.
- Uses
- Evidence:
/Users/guoshuyu/.pub-cache/hosted/pub.dev/share_plus-12.0.1/ios/share_plus/Sources/share_plus/FPPSharePlusPlugin.m:12
- Note:
- Keeps a fallback to
keyWindowfor iOS 12 and below (acceptable for non-scene OS versions).
- Keeps a fallback to
connectivity_plus 6.0.5device_info_plus 10.1.2package_info_plus 8.0.2path_provider_foundation 2.5.1permission_handler_apple 9.4.7rive_common 0.4.11shared_preferences_foundation 2.5.6sqflite 2.3.3+1webview_flutter_wkwebview 3.23.5
Risk level: Low (for UIScene lifecycle migration)
- Why:
- No direct AppDelegate lifecycle hook usage (
addApplicationDelegate/openURLcallbacks /continueUserActivity) detected in plugin runtime source paths.
- No direct AppDelegate lifecycle hook usage (
- Upgrade first:
url_launcher_iosflutter_inappwebview_iosfluttertoast
- Run targeted iPad multi-window validation:
url_launcherin-app Safari presentation- InAppWebView / headless webview attach
- Web auth session presentation anchor
- Toast display target window
- Share sheet presentation
- If upgrade is blocked:
- Apply local patch to resolve active
UIWindowSceneand active window/VC instead ofkeyWindow/globalwindows.