From 512e2c3fd593ed7635bd00c783ab8869e405ec03 Mon Sep 17 00:00:00 2001 From: Anas <65850618+Anas35@users.noreply.github.com> Date: Sat, 29 Apr 2023 05:30:08 +0530 Subject: [PATCH] fix package template create platform folders (#125292) `package` template should not create platform folders. This happen cause by default all platforms are supported and tools didn't distinguish between package and other template, which makes all platforms are true for below code, https://github.com/flutter/flutter/blob/d186792c00f61149916f685e2975300342f64749/packages/flutter_tools/lib/src/project.dart#L374-L380 fixes: #119844 which make #116320 makes invalid. As for why tools created deprecated `Android Embedding`, `appManifestFile` does not exist for `package` template, which make below code to trigger, https://github.com/flutter/flutter/blob/master/packages/flutter_tools/lib/src/project.dart#L768-L770 This does not happen with `module` and `plugin` as it have specific condition check for them. I try to reproduce it with `app` template but didn't succeed --- packages/flutter_tools/lib/src/commands/create.dart | 8 ++++++++ .../test/commands.shard/permeable/create_test.dart | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/packages/flutter_tools/lib/src/commands/create.dart b/packages/flutter_tools/lib/src/commands/create.dart index 106ba35c1ae..9d84e815054 100644 --- a/packages/flutter_tools/lib/src/commands/create.dart +++ b/packages/flutter_tools/lib/src/commands/create.dart @@ -267,6 +267,14 @@ class CreateCommand extends CreateBase { includeLinux = false; includeMacos = false; includeWindows = false; + } else if (template == FlutterProjectType.package) { + // The package template does not supports any platform. + includeIos = false; + includeAndroid = false; + includeWeb = false; + includeLinux = false; + includeMacos = false; + includeWindows = false; } else { includeIos = featureFlags.isIOSEnabled && platforms.contains('ios'); includeAndroid = featureFlags.isAndroidEnabled && platforms.contains('android'); diff --git a/packages/flutter_tools/test/commands.shard/permeable/create_test.dart b/packages/flutter_tools/test/commands.shard/permeable/create_test.dart index 07a7f526473..ed046d71068 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/create_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/create_test.dart @@ -516,6 +516,7 @@ void main() { unexpectedPaths: [ 'android/app/src/main/java/com/example/flutter_project/MainActivity.java', 'android/src/main/java/com/example/flutter_project/FlutterProjectPlugin.java', + 'android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java', 'example/android/app/src/main/java/com/example/flutter_project_example/MainActivity.java', 'example/ios/Runner/AppDelegate.h', 'example/ios/Runner/AppDelegate.m', @@ -525,9 +526,18 @@ void main() { 'ios/Classes/FlutterProjectPlugin.m', 'ios/Runner/AppDelegate.h', 'ios/Runner/AppDelegate.m', + 'ios/Runner/GeneratedPluginRegistrant.h', + 'ios/Runner/GeneratedPluginRegistrant.m', 'ios/Runner/main.m', 'lib/main.dart', 'test/widget_test.dart', + 'windows/flutter/generated_plugin_registrant.cc', + 'windows/flutter/generated_plugin_registrant.h', + 'windows/flutter/generated_plugins.cmake', + 'linux/flutter/generated_plugin_registrant.cc', + 'linux/flutter/generated_plugin_registrant.h', + 'linux/flutter/generated_plugins.cmake', + 'macos/Flutter/GeneratedPluginRegistrant.swift', ], ); return _runFlutterTest(projectDir);