diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart index eec9ba3ee2b..83675e02f07 100644 --- a/packages/flutter_tools/lib/src/ios/mac.dart +++ b/packages/flutter_tools/lib/src/ios/mac.dart @@ -299,10 +299,28 @@ Future buildXcodeProject({ } } + final Status cleanStatus = + logger.startProgress('Running Xcode clean...', expectSlowOperation: true); + final RunResult cleanResult = await runAsync( + [ + '/usr/bin/env', + 'xcrun', + 'xcodebuild', + 'clean', + '-configuration', configuration, + ], + workingDirectory: app.appDirectory, + ); + cleanStatus.stop(); + if (cleanResult.exitCode != 0) { + throwToolExit('Xcode failed to clean\n${cleanResult.stderr}'); + } + final List buildCommands = [ '/usr/bin/env', 'xcrun', 'xcodebuild', + 'build', '-configuration', configuration, 'ONLY_ACTIVE_ARCH=YES', ];