From 0d8d7baa73f397332fc97e4aad4a5edadd78824c Mon Sep 17 00:00:00 2001 From: Victoria Ashworth Date: Wed, 29 Apr 2026 14:06:28 -0500 Subject: [PATCH 1/4] Fix App binary path for SwiftPM Add2App on macOS --- .../lib/src/commands/build_swift_package.dart | 3 +++ .../hermetic/build_swift_package_test.dart | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/packages/flutter_tools/lib/src/commands/build_swift_package.dart b/packages/flutter_tools/lib/src/commands/build_swift_package.dart index e6e17071bb10f..639d5cfd5c61d 100644 --- a/packages/flutter_tools/lib/src/commands/build_swift_package.dart +++ b/packages/flutter_tools/lib/src/commands/build_swift_package.dart @@ -1960,6 +1960,9 @@ class FlutterNativeIntegrationSwiftPackage { 'infoPlistPath': _targetPlatform == FlutterDarwinPlatform.macos ? 'Versions/A/Resources/Info.plist' : 'Info.plist', + 'appFrameworkBinaryPath': _targetPlatform == FlutterDarwinPlatform.macos + ? 'Versions/A/App' + : 'App', }, printStatusWhenWriting: false); } diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_swift_package_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_swift_package_test.dart index bc06375048688..45477d85a63f6 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_swift_package_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_swift_package_test.dart @@ -3293,6 +3293,13 @@ public func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { highestSupportedVersion: FlutterDarwinPlatform.ios.supportedPackagePlatform, ); + final Directory scriptsDirectory = outputDirectory.childDirectory('Scripts'); + expect(scriptsDirectory.childFile('FlutterAssembleInputs.xcfilelist'), exists); + expect( + scriptsDirectory.childFile('FlutterAssembleInputs.xcfilelist').readAsStringSync(), + contains(r'$(BUILT_PRODUCTS_DIR)/App.framework/App'), + ); + expect(flutterIntegrationPackage.childFile('Package.swift'), exists); expect(flutterIntegrationPackage.childFile('Package.swift').readAsStringSync(), ''' // swift-tools-version: 5.9 @@ -3529,6 +3536,13 @@ let package = Package( highestSupportedVersion: FlutterDarwinPlatform.macos.supportedPackagePlatform, ); + final Directory scriptsDirectory = outputDirectory.childDirectory('Scripts'); + expect(scriptsDirectory.childFile('FlutterAssembleInputs.xcfilelist'), exists); + expect( + scriptsDirectory.childFile('FlutterAssembleInputs.xcfilelist').readAsStringSync(), + contains(r'$(BUILT_PRODUCTS_DIR)/App.framework/Versions/A/App'), + ); + expect(flutterIntegrationPackage.childFile('Package.swift'), exists); expect(flutterIntegrationPackage.childFile('Package.swift').readAsStringSync(), ''' // swift-tools-version: 5.9 From 02e053209c1635912efcf264439bf9f7e647d72a Mon Sep 17 00:00:00 2001 From: Victoria Ashworth Date: Thu, 30 Apr 2026 11:35:36 -0500 Subject: [PATCH 2/4] ++ --- .../darwin/Scripts/FlutterAssembleInputs.xcfilelist.tmpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/flutter_tools/templates/add_to_app/darwin/Scripts/FlutterAssembleInputs.xcfilelist.tmpl b/packages/flutter_tools/templates/add_to_app/darwin/Scripts/FlutterAssembleInputs.xcfilelist.tmpl index 678921f3c6140..b56905574d87d 100644 --- a/packages/flutter_tools/templates/add_to_app/darwin/Scripts/FlutterAssembleInputs.xcfilelist.tmpl +++ b/packages/flutter_tools/templates/add_to_app/darwin/Scripts/FlutterAssembleInputs.xcfilelist.tmpl @@ -1,8 +1,8 @@ $(BUILT_PRODUCTS_DIR)/{{flutterFrameworkName}}.framework/{{flutterFrameworkName}} $(BUILT_PRODUCTS_DIR)/{{flutterFrameworkName}}.framework/{{infoPlistPath}} -$(BUILT_PRODUCTS_DIR)/App.framework/App +$(BUILT_PRODUCTS_DIR)/App.framework/{{appFrameworkBinaryPath}} $(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/{{flutterFrameworkName}}.framework/{{flutterFrameworkName}} $(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/{{flutterFrameworkName}}.framework/{{infoPlistPath}} $(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/{{flutterFrameworkName}}.framework/_CodeSignature/CodeResources -$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/App.framework/App +$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/App.framework/{{appFrameworkBinaryPath}} $(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/App.framework/_CodeSignature/CodeResources From 6d03c1795bde8aecc7820710866b30522e110f2d Mon Sep 17 00:00:00 2001 From: Victoria Ashworth Date: Thu, 30 Apr 2026 11:56:06 -0500 Subject: [PATCH 3/4] gemini feedback --- .../lib/src/commands/build_swift_package.dart | 3 +++ .../hermetic/build_swift_package_test.dart | 22 +++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/packages/flutter_tools/lib/src/commands/build_swift_package.dart b/packages/flutter_tools/lib/src/commands/build_swift_package.dart index 639d5cfd5c61d..6844f0ace405c 100644 --- a/packages/flutter_tools/lib/src/commands/build_swift_package.dart +++ b/packages/flutter_tools/lib/src/commands/build_swift_package.dart @@ -1957,6 +1957,9 @@ class FlutterNativeIntegrationSwiftPackage { ); scriptsTemplate.render(scriptsDirectory, { 'flutterFrameworkName': _targetPlatform.binaryName, + 'flutterFrameworkBinaryPath': _targetPlatform == FlutterDarwinPlatform.macos + ? 'Versions/A/${_targetPlatform.binaryName}' + : _targetPlatform.binaryName, 'infoPlistPath': _targetPlatform == FlutterDarwinPlatform.macos ? 'Versions/A/Resources/Info.plist' : 'Info.plist', diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_swift_package_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_swift_package_test.dart index 45477d85a63f6..bd15db1eb4f19 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_swift_package_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_swift_package_test.dart @@ -3297,7 +3297,16 @@ public func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { expect(scriptsDirectory.childFile('FlutterAssembleInputs.xcfilelist'), exists); expect( scriptsDirectory.childFile('FlutterAssembleInputs.xcfilelist').readAsStringSync(), - contains(r'$(BUILT_PRODUCTS_DIR)/App.framework/App'), + r''' +$(BUILT_PRODUCTS_DIR)/Flutter.framework/Flutter +$(BUILT_PRODUCTS_DIR)/Flutter.framework/Info.plist +$(BUILT_PRODUCTS_DIR)/App.framework/App +$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Flutter.framework/Flutter +$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Flutter.framework/Info.plist +$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Flutter.framework/_CodeSignature/CodeResources +$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/App.framework/App +$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/App.framework/_CodeSignature/CodeResources +''', ); expect(flutterIntegrationPackage.childFile('Package.swift'), exists); @@ -3540,7 +3549,16 @@ let package = Package( expect(scriptsDirectory.childFile('FlutterAssembleInputs.xcfilelist'), exists); expect( scriptsDirectory.childFile('FlutterAssembleInputs.xcfilelist').readAsStringSync(), - contains(r'$(BUILT_PRODUCTS_DIR)/App.framework/Versions/A/App'), + r''' +$(BUILT_PRODUCTS_DIR)/FlutterMacOS.framework/Versions/A/FlutterMacOS +$(BUILT_PRODUCTS_DIR)/FlutterMacOS.framework/Versions/A/Resources/Info.plist +$(BUILT_PRODUCTS_DIR)/App.framework/Versions/A/App +$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/FlutterMacOS.framework/Versions/A/FlutterMacOS +$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/FlutterMacOS.framework/Versions/A/Resources/Info.plist +$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/FlutterMacOS.framework/_CodeSignature/CodeResources +$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/App.framework/Versions/A/App +$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/App.framework/_CodeSignature/CodeResources +''', ); expect(flutterIntegrationPackage.childFile('Package.swift'), exists); From 1fac6df2076bcdfbf482525e27b81ba2e41917c2 Mon Sep 17 00:00:00 2001 From: Victoria Ashworth Date: Thu, 30 Apr 2026 11:56:38 -0500 Subject: [PATCH 4/4] ++ --- .../darwin/Scripts/FlutterAssembleInputs.xcfilelist.tmpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/flutter_tools/templates/add_to_app/darwin/Scripts/FlutterAssembleInputs.xcfilelist.tmpl b/packages/flutter_tools/templates/add_to_app/darwin/Scripts/FlutterAssembleInputs.xcfilelist.tmpl index b56905574d87d..04391cb3a5830 100644 --- a/packages/flutter_tools/templates/add_to_app/darwin/Scripts/FlutterAssembleInputs.xcfilelist.tmpl +++ b/packages/flutter_tools/templates/add_to_app/darwin/Scripts/FlutterAssembleInputs.xcfilelist.tmpl @@ -1,7 +1,7 @@ -$(BUILT_PRODUCTS_DIR)/{{flutterFrameworkName}}.framework/{{flutterFrameworkName}} +$(BUILT_PRODUCTS_DIR)/{{flutterFrameworkName}}.framework/{{flutterFrameworkBinaryPath}} $(BUILT_PRODUCTS_DIR)/{{flutterFrameworkName}}.framework/{{infoPlistPath}} $(BUILT_PRODUCTS_DIR)/App.framework/{{appFrameworkBinaryPath}} -$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/{{flutterFrameworkName}}.framework/{{flutterFrameworkName}} +$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/{{flutterFrameworkName}}.framework/{{flutterFrameworkBinaryPath}} $(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/{{flutterFrameworkName}}.framework/{{infoPlistPath}} $(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/{{flutterFrameworkName}}.framework/_CodeSignature/CodeResources $(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/App.framework/{{appFrameworkBinaryPath}}