From ef6bb5a67a93ad9c84f01870346fd3411f66c21a Mon Sep 17 00:00:00 2001 From: Jenn Magder Date: Wed, 9 Dec 2020 18:03:27 -0800 Subject: [PATCH 1/2] Load dart bundle by URL fallback --- .../darwin/ios/framework/Source/FlutterDartProject.mm | 4 ++++ .../darwin/macos/framework/Source/FlutterDartProject.mm | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm b/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm index d22a9684f3b2a..629a85e815962 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm @@ -238,6 +238,10 @@ + (NSString*)flutterAssetsName:(NSBundle*)bundle { if (bundle == nil) { bundle = [NSBundle bundleWithIdentifier:[FlutterDartProject defaultBundleIdentifier]]; } + if (bundle == nil) { + bundle = [NSBundle bundleWithURL:[NSBundle.mainBundle.privateFrameworksURL + URLByAppendingPathComponent:@"App.framework"]]; + } if (bundle == nil) { bundle = [NSBundle mainBundle]; } diff --git a/shell/platform/darwin/macos/framework/Source/FlutterDartProject.mm b/shell/platform/darwin/macos/framework/Source/FlutterDartProject.mm index 6343729d09ac7..48925fe90adac 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterDartProject.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterDartProject.mm @@ -27,6 +27,10 @@ - (instancetype)initWithPrecompiledDartBundle:(NSBundle*)bundle { NSAssert(self, @"Super init cannot be nil"); _dartBundle = bundle ?: [NSBundle bundleWithIdentifier:kAppBundleIdentifier]; + if (_dartBundle == nil) { + _dartBundle = [NSBundle bundleWithURL:[NSBundle.mainBundle.privateFrameworksURL + URLByAppendingPathComponent:@"App.framework"]]; + } _dartEntrypointArguments = [[NSProcessInfo processInfo] arguments]; // Remove the first element as it's the binary name _dartEntrypointArguments = [_dartEntrypointArguments From 4cd30dfe15660ee5ad63a650a4fb32ec063cf10d Mon Sep 17 00:00:00 2001 From: Jenn Magder Date: Thu, 10 Dec 2020 10:06:57 -0800 Subject: [PATCH 2/2] macOS-only --- .../darwin/ios/framework/Source/FlutterDartProject.mm | 4 ---- .../darwin/macos/framework/Source/FlutterDartProject.mm | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm b/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm index 629a85e815962..d22a9684f3b2a 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm @@ -238,10 +238,6 @@ + (NSString*)flutterAssetsName:(NSBundle*)bundle { if (bundle == nil) { bundle = [NSBundle bundleWithIdentifier:[FlutterDartProject defaultBundleIdentifier]]; } - if (bundle == nil) { - bundle = [NSBundle bundleWithURL:[NSBundle.mainBundle.privateFrameworksURL - URLByAppendingPathComponent:@"App.framework"]]; - } if (bundle == nil) { bundle = [NSBundle mainBundle]; } diff --git a/shell/platform/darwin/macos/framework/Source/FlutterDartProject.mm b/shell/platform/darwin/macos/framework/Source/FlutterDartProject.mm index 48925fe90adac..0716c1a2ddc24 100644 --- a/shell/platform/darwin/macos/framework/Source/FlutterDartProject.mm +++ b/shell/platform/darwin/macos/framework/Source/FlutterDartProject.mm @@ -28,6 +28,7 @@ - (instancetype)initWithPrecompiledDartBundle:(NSBundle*)bundle { _dartBundle = bundle ?: [NSBundle bundleWithIdentifier:kAppBundleIdentifier]; if (_dartBundle == nil) { + // The bundle isn't loaded and can't be found by bundle ID. Find it by path. _dartBundle = [NSBundle bundleWithURL:[NSBundle.mainBundle.privateFrameworksURL URLByAppendingPathComponent:@"App.framework"]]; }