diff --git a/dev/devicelab/lib/framework/adb.dart b/dev/devicelab/lib/framework/adb.dart index 7a1c3d2a58..c7b8127b56 100644 --- a/dev/devicelab/lib/framework/adb.dart +++ b/dev/devicelab/lib/framework/adb.dart @@ -3,6 +3,7 @@ // found in the LICENSE file. import 'dart:async'; +import 'dart:convert'; import 'dart:io'; import 'dart:math' as math; @@ -309,13 +310,12 @@ class IosDeviceDiscovery implements DeviceDiscovery { @override Future> discoverDevices() async { - // TODO(yjbanov): use the -k UniqueDeviceID option, which requires much less parsing. - final List iosDeviceIDs = grep('UniqueDeviceID', from: await eval('ideviceinfo', [])) - .map((String line) => line.split(' ').last).toList(); - + final List iosDeviceIDs = LineSplitter.split(await eval('idevice_id', ['-l'])) + .map((String line) => line.trim()) + .where((String line) => line.isNotEmpty) + .toList(); if (iosDeviceIDs.isEmpty) throw 'No connected iOS devices found.'; - return iosDeviceIDs; }