Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

flutter doctor : idevice_id returned an error

Tags:

I hava a question.When I restart my computer , "flutter doctor" is OK. And I can run my app successfully. But Once I run my app, The command "flutter doctor" is wrong. And if I restart my computer,"flutter doctor" will be ok again. is anyone met the same question, how to solve it Exception: idevice_id returned an error:

#0      IMobileDevice.getInfoForDevice (package:flutter_tools/src/ios/mac.dart:122:9)
#1      IOSDevice.getAttachedDevices (package:flutter_tools/src/ios/devices.dart:152:53)
#2      IOSDevices.pollingGetDevices (package:flutter_tools/src/ios/devices.dart:112:57)
#3      PollingDeviceDiscovery.devices (package:flutter_tools/src/device.dart:163:52)
#4      DeviceManager.getAllConnectedDevices (package:flutter_tools/src/device.dart:91:46)
#5      DeviceValidator.validate (package:flutter_tools/src/doctor.dart:607:54)
#6      Doctor.startValidatorTasks (package:flutter_tools/src/doctor.dart:105:52)
#7      Doctor.diagnose (package:flutter_tools/src/doctor.dart:162:41)
#8      _AsyncAwaitCompleter.start (dart:async/runtime/libasync_patch.dart:49:6)
#9      Doctor.diagnose (package:flutter_tools/src/doctor.dart:152:24)
#10     DoctorCommand.runCommand (package:flutter_tools/src/commands/doctor.dart:29:39)
#11     _AsyncAwaitCompleter.start (dart:async/runtime/libasync_patch.dart:49:6)
#12     DoctorCommand.runCommand (package:flutter_tools/src/commands/doctor.dart:28:42)
#13     FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:372:18)
#14     _asyncThenWrapperHelper.<anonymous closure> (dart:async/runtime/libasync_patch.dart:77:64)
#15     _rootRunUnary (dart:async/zone.dart:1132:38)
#16     _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#17     _FutureListener.handleValue (dart:async/future_impl.dart:129:18)
#18     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:642:45)
#19     Future._propagateToListeners (dart:async/future_impl.dart:671:32)
#20     Future._complete (dart:async/future_impl.dart:476:7)
#21     _SyncCompleter.complete (dart:async/future_impl.dart:51:12)
#22     _AsyncAwaitCompleter.complete.<anonymous closure> (dart:async/runtime/libasync_patch.dart:33:20)
#23     _rootRun (dart:async/zone.dart:1124:13)
#24     _CustomZone.run (dart:async/zone.dart:1021:19)
#25     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:947:23)
#26     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#27     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#28     _runPendingImmediateCallback (dart:isolate/runtime/libisolate_patch.dart:115:13)
#29     _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:172:5)"
like image 606
alittlecockroach Avatar asked Oct 17 '18 02:10

alittlecockroach


2 Answers

I could solve the problem by unpairing the devices and then running

brew update
brew uninstall --ignore-dependencies libimobiledevice
brew uninstall --ignore-dependencies usbmuxd
brew install --HEAD usbmuxd
brew unlink usbmuxd
brew link usbmuxd
brew install --HEAD libimobiledevice
brew install ideviceinstaller
like image 191
nilobarp Avatar answered Oct 05 '22 00:10

nilobarp


This is an upstream bug in libusbmuxd that will be fixed soon. There is also a proposed workaround being considered for inclusion in Flutter itself.

In the meanwhile, GitHub user @mattijsf mentioned a couple of ways to work around the problem:

  • Unpair any unwanted iOS device that might be on the same local (Wi-Fi) network that was once paired with Xcode by connecting it with USB and then: Open Xcode > Window > Devices & Simulators > Right click the device > Unpair device.

  • If you are using a physical iOS device that you don't want to unpair from Xcode, you will have to connect it with a USB cable or disable Wi-Fi on the device.

# Detaching USB & Disabling WIFI on device (wait 10 - 20 seconds)

$ idevice_id -l
[empty]

# Enabling WIFI on device (wait 10 - 20 seconds)

$ idevice_id -l
4a8e882c613--37cc1ac48
$ ideviceinfo -u 4a8e882c613-37cc1ac48
No device found with udid 4a8e882c613--37cc1ac48, is it plugged in?

# Attaching device with USB

$ idevice_id -l
4a8e882c613--37cc1ac48
4a8e882c613--37cc1ac48
$ ideviceinfo -u 4a8e882c613--37cc1ac48
ActivationState: Activated
....etc

# Now it works
like image 23
Arto Bendiken Avatar answered Oct 05 '22 01:10

Arto Bendiken