From 56447919fd8c187dade3c9e4895f373a322e2784 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Sat, 8 Apr 2023 12:24:15 -0700 Subject: [PATCH 1/4] mac framework with app extension flag fix license golde --- ci/licenses_golden/licenses_flutter | 2 ++ common/config.gni | 4 +++ shell/platform/darwin/macos/BUILD.gn | 25 +++++++++++++++++-- .../framework/Source/FlutterUmbrellaImport.m | 11 ++++++++ 4 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 shell/platform/darwin/macos/framework/Source/FlutterUmbrellaImport.m diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index bfa34e3874d74..2baa706ff8f2a 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -2673,6 +2673,7 @@ ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTex ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextInputSemanticsObjectTest.mm + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextureRegistrar.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextureRegistrar.mm + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterUmbrellaImport.m + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.mm + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm + ../../../flutter/LICENSE @@ -5268,6 +5269,7 @@ FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextu FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextureRegistrar.mm FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterThreadSynchronizer.h FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterThreadSynchronizer.mm +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterUmbrellaImport.m FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.h FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.mm FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm diff --git a/common/config.gni b/common/config.gni index 1e22be21da6bb..12a4141cb7c82 100644 --- a/common/config.gni +++ b/common/config.gni @@ -61,6 +61,10 @@ if (is_ios || is_mac) { "-Werror=overriding-method-mismatch", "-Werror=undeclared-selector", ] + if (is_mac) { + flutter_cflags_objc += [ "-fapplication-extension" ] + } + flutter_cflags_objcc = flutter_cflags_objc flutter_cflags_objc_arc = flutter_cflags_objc + [ "-fobjc-arc" ] flutter_cflags_objcc_arc = flutter_cflags_objc_arc diff --git a/shell/platform/darwin/macos/BUILD.gn b/shell/platform/darwin/macos/BUILD.gn index d672f9551736c..05bdc3bb0a461 100644 --- a/shell/platform/darwin/macos/BUILD.gn +++ b/shell/platform/darwin/macos/BUILD.gn @@ -149,7 +149,10 @@ shared_library("flutter_framework_dylib") { visibility = [ ":*" ] output_name = "$_flutter_framework_name" - ldflags = [ "-Wl,-install_name,@rpath/$_flutter_framework_filename/$_framework_binary_subpath" ] + ldflags = [ + "-Wl,-install_name,@rpath/$_flutter_framework_filename/$_framework_binary_subpath", + "-fapplication-extension", + ] deps = [ ":flutter_framework_source" ] } @@ -297,7 +300,7 @@ action("_generate_symlinks") { } group("flutter_framework") { - deps = [ ":_generate_symlinks" ] + deps = [ ":_generate_symlinks_and_verify_framework_module" ] } if (build_glfw_shell) { @@ -334,3 +337,21 @@ generated_file("macos_framework_without_entitlement_config") { deps = [ ":_generate_symlinks" ] } + +shared_library("_generate_symlinks_and_verify_framework_module") { + framework_search_path = rebase_path("$root_out_dir") + visibility = [ ":*" ] + cflags_objc = [ "-F$framework_search_path" ] + + ldflags = [ + "-F$framework_search_path", + "-fapplication-extension", + "-Xlinker", + "-fatal_warnings", + ] + frameworks = [ "FlutterMacOS.framework" ] + + sources = [ "framework/Source/FlutterUmbrellaImport.m" ] + + deps = [ ":_generate_symlinks" ] +} diff --git a/shell/platform/darwin/macos/framework/Source/FlutterUmbrellaImport.m b/shell/platform/darwin/macos/framework/Source/FlutterUmbrellaImport.m new file mode 100644 index 0000000000000..b81280d464c19 --- /dev/null +++ b/shell/platform/darwin/macos/framework/Source/FlutterUmbrellaImport.m @@ -0,0 +1,11 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// FLUTTER_NOLINT: https://github.com/flutter/flutter/issues/93360 + +// The only point of this file is to ensure that the Flutter framework umbrella header can be +// cleanly imported from an Objective-C translation unit. The target that uses this file copies the +// headers to a path that simulates how users would actually import the framework outside of the +// engine source root. +#import From f187d76c17a725697e2a8e93ed5927dcc1222fc1 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 10 Apr 2023 12:37:10 -0700 Subject: [PATCH 2/4] rename to tests --- ci/licenses_golden/licenses_flutter | 8 ++++---- shell/platform/darwin/ios/BUILD.gn | 2 +- shell/platform/darwin/macos/BUILD.gn | 2 +- ...utterUmbrellaImport.m => FlutterUmbrellaImportTests.m} | 0 4 files changed, 6 insertions(+), 6 deletions(-) rename shell/platform/darwin/macos/framework/Source/{FlutterUmbrellaImport.m => FlutterUmbrellaImportTests.m} (100%) diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index 2baa706ff8f2a..fdfb18126c699 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -2541,7 +2541,7 @@ ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextu ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextureRegistryRelayTest.mm + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.mm + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUmbrellaImport.m + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/tFlutterUmbrellaImportTests.m + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerDelegate.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.mm + ../../../flutter/LICENSE @@ -2673,7 +2673,7 @@ ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTex ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextInputSemanticsObjectTest.mm + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextureRegistrar.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextureRegistrar.mm + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterUmbrellaImport.m + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/tFlutterUmbrellaImportTests.m + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.mm + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm + ../../../flutter/LICENSE @@ -5133,7 +5133,7 @@ FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTexture FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextureRegistryRelayTest.mm FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.h FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUmbrellaImport.m +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/tFlutterUmbrellaImportTests.m FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerDelegate.h FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.h FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.mm @@ -5269,7 +5269,7 @@ FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextu FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextureRegistrar.mm FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterThreadSynchronizer.h FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterThreadSynchronizer.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterUmbrellaImport.m +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/tFlutterUmbrellaImportTests.m FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.h FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.mm FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm diff --git a/shell/platform/darwin/ios/BUILD.gn b/shell/platform/darwin/ios/BUILD.gn index 7a30a1fb16d03..a9e398676d32c 100644 --- a/shell/platform/darwin/ios/BUILD.gn +++ b/shell/platform/darwin/ios/BUILD.gn @@ -414,7 +414,7 @@ shared_library("copy_and_verify_framework_module") { visibility = [ ":*" ] cflags_objc = [ "-F$framework_search_path" ] - sources = [ "framework/Source/FlutterUmbrellaImport.m" ] + sources = [ "framework/Source/tFlutterUmbrellaImportTests.m" ] deps = [ ":copy_framework_headers", ":copy_framework_info_plist", diff --git a/shell/platform/darwin/macos/BUILD.gn b/shell/platform/darwin/macos/BUILD.gn index 05bdc3bb0a461..0086946596779 100644 --- a/shell/platform/darwin/macos/BUILD.gn +++ b/shell/platform/darwin/macos/BUILD.gn @@ -351,7 +351,7 @@ shared_library("_generate_symlinks_and_verify_framework_module") { ] frameworks = [ "FlutterMacOS.framework" ] - sources = [ "framework/Source/FlutterUmbrellaImport.m" ] + sources = [ "framework/Source/tFlutterUmbrellaImportTests.m" ] deps = [ ":_generate_symlinks" ] } diff --git a/shell/platform/darwin/macos/framework/Source/FlutterUmbrellaImport.m b/shell/platform/darwin/macos/framework/Source/FlutterUmbrellaImportTests.m similarity index 100% rename from shell/platform/darwin/macos/framework/Source/FlutterUmbrellaImport.m rename to shell/platform/darwin/macos/framework/Source/FlutterUmbrellaImportTests.m From e1b481bd23f9b2d393dc09715a856eb973fe804b Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 10 Apr 2023 13:30:20 -0700 Subject: [PATCH 3/4] remove typo --- ci/licenses_golden/licenses_flutter | 8 ++++---- shell/platform/darwin/ios/BUILD.gn | 2 +- shell/platform/darwin/macos/BUILD.gn | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index fdfb18126c699..bbacbcc745bf1 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -2541,7 +2541,7 @@ ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextu ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextureRegistryRelayTest.mm + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.mm + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/tFlutterUmbrellaImportTests.m + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUmbrellaImportTests.m + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerDelegate.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.mm + ../../../flutter/LICENSE @@ -2673,7 +2673,7 @@ ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTex ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextInputSemanticsObjectTest.mm + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextureRegistrar.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextureRegistrar.mm + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/tFlutterUmbrellaImportTests.m + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterUmbrellaImportTests.m + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.mm + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm + ../../../flutter/LICENSE @@ -5133,7 +5133,7 @@ FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTexture FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextureRegistryRelayTest.mm FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.h FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/tFlutterUmbrellaImportTests.m +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUmbrellaImportTests.m FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerDelegate.h FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.h FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.mm @@ -5269,7 +5269,7 @@ FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextu FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterTextureRegistrar.mm FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterThreadSynchronizer.h FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterThreadSynchronizer.mm -FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/tFlutterUmbrellaImportTests.m +FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterUmbrellaImportTests.m FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.h FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterView.mm FILE: ../../../flutter/shell/platform/darwin/macos/framework/Source/FlutterViewController.mm diff --git a/shell/platform/darwin/ios/BUILD.gn b/shell/platform/darwin/ios/BUILD.gn index a9e398676d32c..7c045ee576525 100644 --- a/shell/platform/darwin/ios/BUILD.gn +++ b/shell/platform/darwin/ios/BUILD.gn @@ -414,7 +414,7 @@ shared_library("copy_and_verify_framework_module") { visibility = [ ":*" ] cflags_objc = [ "-F$framework_search_path" ] - sources = [ "framework/Source/tFlutterUmbrellaImportTests.m" ] + sources = [ "framework/Source/FlutterUmbrellaImportTests.m" ] deps = [ ":copy_framework_headers", ":copy_framework_info_plist", diff --git a/shell/platform/darwin/macos/BUILD.gn b/shell/platform/darwin/macos/BUILD.gn index 0086946596779..3e38ac0d910b1 100644 --- a/shell/platform/darwin/macos/BUILD.gn +++ b/shell/platform/darwin/macos/BUILD.gn @@ -351,7 +351,7 @@ shared_library("_generate_symlinks_and_verify_framework_module") { ] frameworks = [ "FlutterMacOS.framework" ] - sources = [ "framework/Source/tFlutterUmbrellaImportTests.m" ] + sources = [ "framework/Source/FlutterUmbrellaImportTests.m" ] deps = [ ":_generate_symlinks" ] } From d12b8cf31ed002f92c749477f3217473f714b45f Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 10 Apr 2023 13:57:33 -0700 Subject: [PATCH 4/4] fix accidental change on ios --- ci/licenses_golden/licenses_flutter | 4 ++-- shell/platform/darwin/ios/BUILD.gn | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index bbacbcc745bf1..dd35939ca6657 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -2541,7 +2541,7 @@ ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextu ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextureRegistryRelayTest.mm + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.mm + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUmbrellaImportTests.m + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUmbrellaImport.m + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerDelegate.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.mm + ../../../flutter/LICENSE @@ -5133,7 +5133,7 @@ FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTexture FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterTextureRegistryRelayTest.mm FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.h FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUIPressProxy.mm -FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUmbrellaImportTests.m +FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUmbrellaImport.m FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerDelegate.h FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.h FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.mm diff --git a/shell/platform/darwin/ios/BUILD.gn b/shell/platform/darwin/ios/BUILD.gn index 7c045ee576525..7a30a1fb16d03 100644 --- a/shell/platform/darwin/ios/BUILD.gn +++ b/shell/platform/darwin/ios/BUILD.gn @@ -414,7 +414,7 @@ shared_library("copy_and_verify_framework_module") { visibility = [ ":*" ] cflags_objc = [ "-F$framework_search_path" ] - sources = [ "framework/Source/FlutterUmbrellaImportTests.m" ] + sources = [ "framework/Source/FlutterUmbrellaImport.m" ] deps = [ ":copy_framework_headers", ":copy_framework_info_plist",