diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart index 34c59908f3..33837f0e37 100644 --- a/packages/flutter_tools/lib/src/cache.dart +++ b/packages/flutter_tools/lib/src/cache.dart @@ -1274,6 +1274,9 @@ class IosUsbArtifacts extends CachedArtifact { 'idevicescreenshot', 'idevicesyslog', ], + 'usbmuxd': [ + 'iproxy', + ], }; @override diff --git a/packages/flutter_tools/test/general.shard/cache_test.dart b/packages/flutter_tools/test/general.shard/cache_test.dart index 4e9e8044a3..868be0a9f2 100644 --- a/packages/flutter_tools/test/general.shard/cache_test.dart +++ b/packages/flutter_tools/test/general.shard/cache_test.dart @@ -436,6 +436,24 @@ void main() { ProcessManager: () => FakeProcessManager.any(), }); + testUsingContext('verifies iproxy for usbmuxd in isUpToDateInner', () async { + final IosUsbArtifacts iosUsbArtifacts = IosUsbArtifacts('usbmuxd', mockCache); + when(mockCache.getArtifactDirectory(any)).thenReturn(globals.fs.currentDirectory); + iosUsbArtifacts.location.createSync(); + final File iproxy = iosUsbArtifacts.location.childFile('iproxy') + ..createSync(); + + expect(iosUsbArtifacts.isUpToDateInner(), true); + + iproxy.deleteSync(); + + expect(iosUsbArtifacts.isUpToDateInner(), false); + }, overrides: { + Cache: () => mockCache, + FileSystem: () => MemoryFileSystem(), + ProcessManager: () => FakeProcessManager.any(), + }); + testUsingContext('Does not verify executables for openssl in isUpToDateInner', () async { final IosUsbArtifacts iosUsbArtifacts = IosUsbArtifacts('openssl', mockCache); when(mockCache.getArtifactDirectory(any)).thenReturn(globals.fs.currentDirectory);