anchor.diff:  
     @override
     Future<List<Device>> discoverDevices({Duration retryDuration = const Duration(seconds: 10)}) async {
  -    return LineSplitter.split(await deviceListOutput()).map((String id) => IosDevice(deviceId: id)).toList();
  +    final List<Device> discoveredDevices =
  +        LineSplitter.split(await deviceListOutput()).map((String id) => IosDevice(deviceId: id)).toList();
  +    stdout.write("ios devices discovered: ${discoveredDevices.map((e) => e.deviceId).toList()}");
  +    return discoveredDevices;
     }
   
     Future<String> deviceListOutput({
       ProcessManager processManager = const LocalProcessManager(),
     }) async {
       final String fullPathIdeviceId = await getMacBinaryPath('idevice_id', processManager: processManager);
  +    stdout.write("idevice_id path $fullPathIdeviceId");
       return eval(fullPathIdeviceId, <String>['-l'], processManager: processManager);
     }
   
  
positive.code: 
      // Skip uninstalling process when no device is available or no application exists.
      if (result == 'No device found.' || result == 'CFBundleIdentifier, CFBundleVersion, CFBundleDisplayName') {
        return true;
      }
      final List<String> results = result.trim().split('\n');
  
negative.code:       stderr.write('uninstall applications fails: $error');
        return false;
      }
      stdout.write("Uninstall complete.");
      return true;
    }
  }
  