diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart index e7133b0ad32..6be9ed3ca52 100644 --- a/packages/flutter_tools/lib/src/ios/devices.dart +++ b/packages/flutter_tools/lib/src/ios/devices.dart @@ -543,6 +543,7 @@ class IOSDevice extends Device { debuggingOptions: debuggingOptions, launchArguments: launchArguments, ipv6: ipv6, + uninstallFirst: debuggingOptions.uninstallFirst, ); } @@ -695,6 +696,7 @@ class IOSDevice extends Device { debuggingOptions: debuggingOptions, launchArguments: launchArguments, ipv6: ipv6, + uninstallFirst: false, skipInstall: true, ); installationResult = await iosDeployDebugger!.launchAndAttach() ? 0 : 1; @@ -737,6 +739,7 @@ class IOSDevice extends Device { required DebuggingOptions debuggingOptions, required List launchArguments, required bool ipv6, + required bool uninstallFirst, bool skipInstall = false, }) { final DeviceLogReader deviceLogReader = getLogReader( @@ -753,7 +756,7 @@ class IOSDevice extends Device { appDeltaDirectory: package.appDeltaDirectory, launchArguments: launchArguments, interfaceType: connectionInterface, - uninstallFirst: debuggingOptions.uninstallFirst, + uninstallFirst: uninstallFirst, skipInstall: skipInstall, ); if (deviceLogReader is IOSDeviceLogReader) { diff --git a/packages/flutter_tools/test/general.shard/ios/ios_device_start_prebuilt_test.dart b/packages/flutter_tools/test/general.shard/ios/ios_device_start_prebuilt_test.dart index f163f32e2fa..d0aa1ab6e0a 100644 --- a/packages/flutter_tools/test/general.shard/ios/ios_device_start_prebuilt_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/ios_device_start_prebuilt_test.dart @@ -75,6 +75,7 @@ FakeCommand attachDebuggerCommand({ String stdout = '(lldb) run\nsuccess', Completer? completer, bool isWirelessDevice = false, + bool uninstallFirst = false, bool skipInstall = false, }) { return FakeCommand( @@ -88,6 +89,8 @@ FakeCommand attachDebuggerCommand({ '123', '--bundle', '/', + if (uninstallFirst) + '--uninstall', if (skipInstall) '--noinstall', '--debug', @@ -349,6 +352,7 @@ void main() { final FakeProcessManager processManager = FakeProcessManager.list([ attachDebuggerCommand( stdout: '(lldb) run\nsuccess\nProcess 525 exited with status = -1 (0xffffffff) lost connection', + uninstallFirst: true, ), attachDebuggerCommand( stdout: '(lldb) run\nsuccess\nThe Dart VM service is listening on http://127.0.0.1:456', @@ -375,6 +379,7 @@ void main() { debuggingOptions: DebuggingOptions.enabled( BuildInfo.debug, usingCISystem: true, + uninstallFirst: true, ), platformArgs: {}, );