From f2bf93c449ffd4994236cabd948a8175fb4f8d01 Mon Sep 17 00:00:00 2001 From: zhongwuzw Date: Wed, 3 Nov 2021 23:05:29 +0800 Subject: [PATCH] [macOS] Fixes Crash of cxx destruction when App will terminate --- .../macos/framework/Source/FlutterViewController.mm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm b/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm index 87b41b9e44a78..ffbfa255beabe 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm @@ -254,6 +254,10 @@ static void CommonInit(FlutterViewController* controller) { selector:@selector(onAccessibilityStatusChanged:) name:EnhancedUserInterfaceNotification object:nil]; + [center addObserver:controller + selector:@selector(applicationWillTerminate:) + name:NSApplicationWillTerminateNotification + object:nil]; } - (instancetype)initWithCoder:(NSCoder*)coder { @@ -557,6 +561,13 @@ - (void)dispatchMouseEvent:(NSEvent*)event phase:(FlutterPointerPhase)phase { } } +- (void)applicationWillTerminate:(NSNotification*)notification { + if (!_engine) { + return; + } + [_engine shutDownEngine]; +} + - (void)onAccessibilityStatusChanged:(NSNotification*)notification { if (!_engine) { return;