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..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,9 +1957,15 @@ 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', + 'appFrameworkBinaryPath': _targetPlatform == FlutterDarwinPlatform.macos + ? 'Versions/A/App' + : 'App', }, printStatusWhenWriting: false); } 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..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,8 +1,8 @@ -$(BUILT_PRODUCTS_DIR)/{{flutterFrameworkName}}.framework/{{flutterFrameworkName}} +$(BUILT_PRODUCTS_DIR)/{{flutterFrameworkName}}.framework/{{flutterFrameworkBinaryPath}} $(BUILT_PRODUCTS_DIR)/{{flutterFrameworkName}}.framework/{{infoPlistPath}} -$(BUILT_PRODUCTS_DIR)/App.framework/App -$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/{{flutterFrameworkName}}.framework/{{flutterFrameworkName}} +$(BUILT_PRODUCTS_DIR)/App.framework/{{appFrameworkBinaryPath}} +$(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/App +$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/App.framework/{{appFrameworkBinaryPath}} $(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/App.framework/_CodeSignature/CodeResources 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..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 @@ -3293,6 +3293,22 @@ 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(), + 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); expect(flutterIntegrationPackage.childFile('Package.swift').readAsStringSync(), ''' // swift-tools-version: 5.9 @@ -3529,6 +3545,22 @@ 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(), + 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); expect(flutterIntegrationPackage.childFile('Package.swift').readAsStringSync(), ''' // swift-tools-version: 5.9