iOS device not showing in devicectl list

I have one iOS device running iOS 16.7.10. When I run xcrun devicectl list devices I can't see that device at all. Is that know limitation (devicectl only work in iOS 17 and above) or is something wrong with my setup.

Also is there some documention about devicectl. I can't seem to find anything about in the offical apple sites.

Answered by DTS Engineer in 821634022

Thanks for the post.

The devicectl command, accessible through the Xcode command-line tools, may have limited availability and functionality for specific versions of macOS and iOS. Could you please provide the version of Xcode you are currently using?

Xcode 16, released recently, introduces significant enhancements and improvements, as outlined in the following documentation: https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes

One notable improvement is the enhancement to the process launch time of the devicectl command line tool, as reported in the release notes: (119057359)

I believe the devicectl is primarily designed to function with iOS 17 and later.

For the most reliable and comprehensive iOS device management and development experience, Xcode is the preferred tool. Here’s how you can connect and interact with your iOS device using Xcode:

  • Connect your iOS device: Use a USB cable to connect your iOS device running iOS 16.7.10 to your Mac.
  • Open Xcode: Launch Xcode on your Mac.
  • Window > Devices and Simulators: From the Xcode menu bar, select “Window” and then “Devices and Simulators.”
  • In the “Devices” section, you should see your connected iOS device listed.
  • Select your device: Click on your device in the sidebar to select it.

Utilizing Xcode is the standard and recommended approach for iOS developers, irrespective of the iOS version they are using. It provides a comprehensive suite of tools and features tailored for development, debugging, and testing purposes.

Kindly ensure that Xcode 16 is installed on your system.

Albert Pascual
  Worldwide Developer Relations.

Thanks for the post.

The devicectl command, accessible through the Xcode command-line tools, may have limited availability and functionality for specific versions of macOS and iOS. Could you please provide the version of Xcode you are currently using?

Xcode 16, released recently, introduces significant enhancements and improvements, as outlined in the following documentation: https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes

One notable improvement is the enhancement to the process launch time of the devicectl command line tool, as reported in the release notes: (119057359)

I believe the devicectl is primarily designed to function with iOS 17 and later.

For the most reliable and comprehensive iOS device management and development experience, Xcode is the preferred tool. Here’s how you can connect and interact with your iOS device using Xcode:

  • Connect your iOS device: Use a USB cable to connect your iOS device running iOS 16.7.10 to your Mac.
  • Open Xcode: Launch Xcode on your Mac.
  • Window > Devices and Simulators: From the Xcode menu bar, select “Window” and then “Devices and Simulators.”
  • In the “Devices” section, you should see your connected iOS device listed.
  • Select your device: Click on your device in the sidebar to select it.

Utilizing Xcode is the standard and recommended approach for iOS developers, irrespective of the iOS version they are using. It provides a comprehensive suite of tools and features tailored for development, debugging, and testing purposes.

Kindly ensure that Xcode 16 is installed on your system.

Albert Pascual
  Worldwide Developer Relations.

Thank you for the lengthy answer but I am not quite following. I asked:

I can't see that device at all. Is that know limitation (devicectl only work in iOS 17 and above) or is something wrong with my setup.

And if I understand correctly the answer was

I believe the devicectl is primarily designed to function with iOS 17 and later.

So what does that mean? What does "primarily design" mean in practice? When I run xcrun devicectl list devices should I see my iOS 16.7.10 in that list or not? If you have actual documentation that would be really helpful.

I am currently using XCode 16.2.

I understand that you want everyone to use XCode, but my use case is this:

I am developing a Safari Web Extension and I want the host app to rebuild, deploy and open Mobile Safari automatically when I change my Web Extension typescript code. This is possible to do with xcodebuild and devicectl but AFAIK not with XCode. So my problem is that I can't see my test device in devicectl. I am trying to understand does buying a new test device help or is there something wrong with my configs.

Anyone coming to this later. Yes it seems devicectl is not supported in iOS 16. I bought a new test device where I can install newest iOS version and devicectl worked there immediately.

And please Apple. Do something about your documentation. It is terrible.

Do this google search "apple developer documentation opinions" and please see what the dev community things about your docs. A company of your caliber must be able to do something about it.

Yes it seems devicectl is not supported in iOS 16.

That is correct. The command supports iOS 17+ devices.

Also is there some documention about devicectl.

To learn about this command, run the following command in Terminal:

xcrun devicectl help 

And please Apple. Do something about your documentation. It is terrible.

Please file a Feedback report with your suggestions.

To learn about this command, run the following command in Terminal:

Come on!! Not all iOS devs are just copy pasting commands from Chat GPT and Stack Overflow. Some actually know what they are doing :D

The problem is that these devs cannot know the limitations of dev tools unless they are documented. Or the tool provides clear error messages. Otherwise they are doomed to waste hours debugging things that won't work in the first place.

iOS device not showing in devicectl list
 
 
Q