diff --git a/bin/internal/ideviceinstaller.version b/bin/internal/ideviceinstaller.version
index 90f1492..fdcaee8 100644
--- a/bin/internal/ideviceinstaller.version
+++ b/bin/internal/ideviceinstaller.version
@@ -1 +1 @@
-ab9352110092cf651b5602301371cd00691c7e13
+73b9c81e02f83060aa44bece963a62827908de68
diff --git a/bin/internal/libimobiledevice.version b/bin/internal/libimobiledevice.version
index 0fc801b..043a9e8 100644
--- a/bin/internal/libimobiledevice.version
+++ b/bin/internal/libimobiledevice.version
@@ -1 +1 @@
-398c1208731cb887c64a31c2ae111048b079f80d
+6150fcd888a0ee8a69dd47328509ee608c2e02dc
diff --git a/bin/internal/libplist.version b/bin/internal/libplist.version
index 973064b..4a3c05c 100644
--- a/bin/internal/libplist.version
+++ b/bin/internal/libplist.version
@@ -1 +1 @@
-17546f53ac1377b0d4f45a800aaec7366ba5b6a0
+28812e5bed8621bd637b4129ab15a9c1abb9f57d
diff --git a/bin/internal/openssl.version b/bin/internal/openssl.version
index 400e36a..a69b8be 100644
--- a/bin/internal/openssl.version
+++ b/bin/internal/openssl.version
@@ -1 +1 @@
-03da376ff7504c63a1d00d57cf41bd7b7e93ff65
+2ef3f4c83bce209247479e707eebd5a84f606e28
diff --git a/bin/internal/usbmuxd.version b/bin/internal/usbmuxd.version
index d77b5cf..6252dfc 100644
--- a/bin/internal/usbmuxd.version
+++ b/bin/internal/usbmuxd.version
@@ -1 +1 @@
-60109fdef47dfe0badfb558a6a2105e8fb23660a
+eb45fd21469fa35e9bbc3b0a15a962460b8d23a2
diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart
index 6653c0c..5853818 100644
--- a/packages/flutter_tools/lib/src/ios/devices.dart
+++ b/packages/flutter_tools/lib/src/ios/devices.dart
@@ -393,25 +393,29 @@
           debuggingOptions.observatoryPort,
         );
         if (localUri != null) {
+          UsageEvent('ios-mdns', 'success').send();
           return LaunchResult.succeeded(observatoryUri: localUri);
         }
       } catch (error) {
-        printError('Failed to establish a debug connection with $id: $error');
+        printError('Failed to establish a debug connection with $id using mdns: $error');
       }
 
-      // Fallback to manual protocol discovery
+      // Fallback to manual protocol discovery.
+      UsageEvent('ios-mdns', 'failure').send();
       printTrace('mDNS lookup failed, attempting fallback to reading device log.');
       try {
         printTrace('Waiting for observatory port.');
         localUri = await observatoryDiscovery.uri;
         if (localUri != null) {
+          UsageEvent('ios-mdns', 'fallback-success').send();
           return LaunchResult.succeeded(observatoryUri: localUri);
         }
       } catch (error) {
-        printError('Failed to establish a debug connection with $id: $error');
+        printError('Failed to establish a debug connection with $id using logs: $error');
       } finally {
         await observatoryDiscovery?.cancel();
       }
+      UsageEvent('ios-mdns', 'fallback-failure').send();
       return LaunchResult.failed();
     } finally {
       installStatus.stop();
diff --git a/packages/flutter_tools/test/general.shard/ios/devices_test.dart b/packages/flutter_tools/test/general.shard/ios/devices_test.dart
index dba51cf..dc0e21d 100644
--- a/packages/flutter_tools/test/general.shard/ios/devices_test.dart
+++ b/packages/flutter_tools/test/general.shard/ios/devices_test.dart
@@ -18,6 +18,7 @@
 import 'package:flutter_tools/src/macos/xcode.dart';
 import 'package:flutter_tools/src/mdns_discovery.dart';
 import 'package:flutter_tools/src/project.dart';
+import 'package:flutter_tools/src/reporting/reporting.dart';
 import 'package:mockito/mockito.dart';
 import 'package:platform/platform.dart';
 import 'package:process/process.dart';
@@ -36,6 +37,7 @@
 class MockXcode extends Mock implements Xcode {}
 class MockFile extends Mock implements File {}
 class MockPortForwarder extends Mock implements DevicePortForwarder {}
+class MockUsage extends Mock implements Usage {}
 
 void main() {
   final FakePlatform macPlatform = FakePlatform.fromPlatform(const LocalPlatform());
@@ -74,6 +76,7 @@
       MockDeviceLogReader mockLogReader;
       MockMDnsObservatoryDiscovery mockMDnsObservatoryDiscovery;
       MockPortForwarder mockPortForwarder;
+      MockUsage mockUsage;
 
       const int devicePort = 499;
       const int hostPort = 42;
@@ -98,6 +101,7 @@
         mockProcessManager = MockProcessManager();
         mockLogReader = MockDeviceLogReader();
         mockPortForwarder = MockPortForwarder();
+        mockUsage = MockUsage();
 
         when(
             mockArtifacts.getArtifactPath(
@@ -154,6 +158,7 @@
           debuggingOptions: DebuggingOptions.enabled(const BuildInfo(BuildMode.debug, null)),
           platformArgs: <String, dynamic>{},
         );
+        verify(mockUsage.sendEvent('ios-mdns', 'success')).called(1);
         expect(launchResult.started, isTrue);
         expect(launchResult.hasObservatory, isTrue);
         expect(await device.stopApp(mockApp), isFalse);
@@ -164,6 +169,7 @@
         MDnsObservatoryDiscovery: () => mockMDnsObservatoryDiscovery,
         Platform: () => macPlatform,
         ProcessManager: () => mockProcessManager,
+        Usage: () => mockUsage,
       });
 
       testUsingContext(' succeeds in debug mode when mDNS fails by falling back to manual protocol discovery', () async {
@@ -183,6 +189,8 @@
           debuggingOptions: DebuggingOptions.enabled(const BuildInfo(BuildMode.debug, null)),
           platformArgs: <String, dynamic>{},
         );
+        verify(mockUsage.sendEvent('ios-mdns', 'failure')).called(1);
+        verify(mockUsage.sendEvent('ios-mdns', 'fallback-success')).called(1);
         expect(launchResult.started, isTrue);
         expect(launchResult.hasObservatory, isTrue);
         expect(await device.stopApp(mockApp), isFalse);
@@ -193,6 +201,7 @@
         MDnsObservatoryDiscovery: () => mockMDnsObservatoryDiscovery,
         Platform: () => macPlatform,
         ProcessManager: () => mockProcessManager,
+        Usage: () => mockUsage,
       });
 
       testUsingContext(' fails in debug mode when mDNS fails and when Observatory URI is malformed', () async {
@@ -213,6 +222,8 @@
             debuggingOptions: DebuggingOptions.enabled(const BuildInfo(BuildMode.debug, null)),
             platformArgs: <String, dynamic>{},
         );
+        verify(mockUsage.sendEvent('ios-mdns', 'failure')).called(1);
+        verify(mockUsage.sendEvent('ios-mdns', 'fallback-failure')).called(1);
         expect(launchResult.started, isFalse);
         expect(launchResult.hasObservatory, isFalse);
       }, overrides: <Type, Generator>{
@@ -222,6 +233,7 @@
         MDnsObservatoryDiscovery: () => mockMDnsObservatoryDiscovery,
         Platform: () => macPlatform,
         ProcessManager: () => mockProcessManager,
+        Usage: () => mockUsage,
       });
 
       testUsingContext(' succeeds in release mode', () async {
