diff --git a/packages/flutter_tools/lib/src/xcode_project.dart b/packages/flutter_tools/lib/src/xcode_project.dart index 11d47b93caf..d86465d117a 100644 --- a/packages/flutter_tools/lib/src/xcode_project.dart +++ b/packages/flutter_tools/lib/src/xcode_project.dart @@ -796,13 +796,13 @@ def __lldb_init_module(debugger: lldb.SBDebugger, _): projectInfo.reportFlavorNotFoundAndExit(); } for (final String scheme in projectInfo.schemes) { - // the default scheme should not be a watch scheme, so skip it + // Flutter assumes single build target per scheme, so skip default scheme. if (scheme == defaultScheme) { continue; } + final Map? allBuildSettings = await buildSettingsForBuildInfo( buildInfo, - deviceId: deviceId, scheme: scheme, isWatch: true, ); diff --git a/packages/flutter_tools/test/general.shard/project_test.dart b/packages/flutter_tools/test/general.shard/project_test.dart index f2376b124c9..47ab4edc655 100644 --- a/packages/flutter_tools/test/general.shard/project_test.dart +++ b/packages/flutter_tools/test/general.shard/project_test.dart @@ -1890,6 +1890,10 @@ resolution: workspace testPlistParser = FakePlistParser(); mockXcodeProjectInterpreter = FakeXcodeProjectInterpreter(); flutterProjectFactory = FlutterProjectFactory(fileSystem: fs, logger: logger); + const buildContext = XcodeProjectBuildContext(scheme: 'Runner'); + mockXcodeProjectInterpreter.buildSettingsByBuildContext[buildContext] = { + IosProject.kProductBundleIdKey: 'io.flutter.someProject', + }; }); testUsingContext( @@ -1920,12 +1924,8 @@ resolution: workspace }, ); - group('with bundle identifier', () { + group('with bundle identifier and multiple schemes', () { setUp(() { - const buildContext = XcodeProjectBuildContext(scheme: 'Runner'); - mockXcodeProjectInterpreter.buildSettingsByBuildContext[buildContext] = { - IosProject.kProductBundleIdKey: 'io.flutter.someProject', - }; mockXcodeProjectInterpreter.xcodeProjectInfo = XcodeProjectInfo( ['Runner', 'WatchTarget'], [], @@ -1991,7 +1991,6 @@ resolution: workspace .childDirectory('WatchTarget') .childFile('Info.plist') .createSync(recursive: true); - testPlistParser.setProperty( 'WKCompanionAppBundleIdentifier', 'io.flutter.someOTHERproject', @@ -2048,7 +2047,10 @@ resolution: workspace () async { final FlutterProject project = await someProject(); project.ios.xcodeProject.createSync(); - const buildContext = XcodeProjectBuildContext(scheme: 'Runner', deviceId: '123'); + const buildContext = XcodeProjectBuildContext( + scheme: 'Runner', + deviceId: '123', + ); // for substituteXcodeVariables call of plist parsing mockXcodeProjectInterpreter.buildSettingsByBuildContext[buildContext] = { IosProject.kProductBundleIdKey: 'io.flutter.someProject', }; @@ -2089,14 +2091,8 @@ resolution: workspace INFOPLIST_KEY_WKCompanionAppBundleIdentifier = io.flutter.someProject '''); - const buildContext = XcodeProjectBuildContext(scheme: 'Runner', deviceId: '123'); - mockXcodeProjectInterpreter.buildSettingsByBuildContext[buildContext] = { - IosProject.kProductBundleIdKey: 'io.flutter.someProject', - }; - const watchBuildContext = XcodeProjectBuildContext( scheme: 'WatchScheme', - deviceId: '123', sdk: XcodeSdk.WatchOS, ); mockXcodeProjectInterpreter.buildSettingsByBuildContext[watchBuildContext] = @@ -2131,14 +2127,9 @@ resolution: workspace Build settings for action build and target "WatchTarget": INFOPLIST_KEY_WKCompanionAppBundleIdentifier = $(PRODUCT_BUNDLE_IDENTIFIER) '''); - const buildContext = XcodeProjectBuildContext(scheme: 'Runner', deviceId: '123'); - mockXcodeProjectInterpreter.buildSettingsByBuildContext[buildContext] = { - IosProject.kProductBundleIdKey: 'io.flutter.someProject', - }; const watchBuildContext = XcodeProjectBuildContext( scheme: 'WatchScheme', - deviceId: '123', sdk: XcodeSdk.WatchOS, ); mockXcodeProjectInterpreter.buildSettingsByBuildContext[watchBuildContext] =