How to check device id of iPhone simulator?

I want to check device id for my iPhone simulator application. But not using codebase. I know the way how to do with codebase, using UIDevice instance.

Is there any way to find device id without using codebase?


Solution 1:

EDIT: See other answers for the newer ways to view UDIDs for CoreSimulator-based simulators.

  1. instruments -s devices
  2. xcrun simctl list
  3. From Xcode: Window -> Devices and Simulators -> Simulators. The Identifier value is the UDID.

From 2011:

Is the iPhone Simulator UDID unique for each installed instance?

This answer should be what you want. Look at System Profiler on your mac and the id is there. I just tested on my machine and the IDs match.

This is the exact Terminal command you can enter to view it:

system_profiler SPHardwareDataType

Solution 2:

Try this

instruments -s devices

Solution 3:

As so often, there is a Xcode terminal tool for that (part of the Xcode tools) see xcrun manpage

xcrun simctl list | egrep '(Booted)'

lists only all booted (could be more than one) Simulators (remove | egrep '(Booted)' to see them all).

UIID results like

 iPhone 6 Plus (AAAABD40-9DE6-44B7-A4EA-B34ABCDEFCA6) (Booted)

you can then lookup a folder in ~/Library/Developer/CoreSimulator/Deviceson your Mac and find all the "belongings" of that particular Simulator

Solution 4:

You can also retrieve the same UDID, labeled as "Identifier". In the Xcode Window menu, select Devices and Simulators: enter image description here then select the Simulators tab: enter image description here

Solution 5:

You can search for just the booted devices and get the iOS version (different from @TiBooX's answer which just shows the active devices). You also don't need to use grep, you can just use the built in functionality of xcrun:

$ xcrun simctl list 'devices' 'booted'

Which will print out something like:

== Devices ==
-- iOS 10.3 --
-- iOS 11.4 --
-- iOS 12.4 --
-- iOS 13.4 --
    iPhone 11 Pro (A5DEEA78-1E82-472E-B7CC-FFD27741CDA2) (Booted)
-- tvOS 13.4 --
-- watchOS 6.2 --

I would recommend adding the following alias to your .bashrc or .zshrc:

# Get the active simulator with
alias active-sims="xcrun simctl list 'devices' 'booted'"

This way you can just run active-sims without remembering the entire line every time.