simulator name is shown with id instead of os name

2019-01-18 18:22发布

问题:

I've installed additional ios simulators(7.1) just after installing Xcode 6.2 and now the simulator names look like this:

How do I change the names?

回答1:

Xcode uses the device version to disambiguate devices with the same name. If two devices have the same name and version number, it will show the devices' UDIDs.

You have 4 of each of all your device types, so I suspect that some of them are for the same iOS version. You should delete some of the duplicates. Check out

xcrun simctl list

and

xcrun simctl delete

or go to Windows>Devices in Xcode to delete or rename your devices.



回答2:

How to fix it

Xcode uses the device version to disambiguate devices with the same name. If two devices have the same name and version number, it will use the devices' UDIDs.

You have 4 of each of a bunch of devices (eg iPhone 5s). I suspect that some of them are for the same iOS version. You should delete some of the duplicates. Check out xcrun simctl list and xcrun simctl delete or use the device manager within Xcode.app (click on the "-" to delete a device).

How to just get back to a default state

# Ensure all possible clients of CoreSimulatorService are no longer running:

killall Xcode 2> /dev/null
killall Instruments 2> /dev/null
killall 'iOS Simulator' 2> /dev/null
killall Simulator 2> /dev/null
killall 'Simulator (Watch)' 2> /dev/null
killall ibtoold 2> /dev/null
killall simctl 2> /dev/null
# There may be others

# Kill the service itself
sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService

# Remove all the data and logs
rm -rf ~/Library/*/CoreSimulator

Why this might be happening:

CoreSimulatorService will monitor for the addition of new simulator runtimes in /Library/Developer/CoreSimulator/Profiles (eg, for when downloading them from Xcode -> Preferences -> Downloads). When installing a new runtime, CoreSimulatorService will create an initial set of devices for that runtime.

This problem arrises if there are multiple instances of CoreSimulatorService running at the same time. Each CoreSimulatorService instance will create its own set of devices (but its clients will only see that instances's sets at first). On subsequent launches (eg: after a reboot), both copies will be seen. One can get into a state where multiple copies of CoreSimulatorService are running at the same time due to testing beta versions of Xcode.app in the same login session as using the released Xcode.app or by having used Xcode.app before and after updating it through the App Store.

If you are aware of any other way that this bug might come about, please file a new radar at http://bugreport.apple.com



回答3:

Here's a solution that doesn't involve typing in things to the command line. Click on "Add additional simulators" at the bottom of the simulators list, then click on a simulator you want to delete, press Delete, and confirm. You may be doing this for a while if there are a lot of duplicate simulators. Somehow, after I installed the iOS 8.4 simulator, about 20 simulators of each device type got created for iOS 8.4...



回答4:

  1. Go to this path "~/Library/Developer/CoreSimulator/Devices"
  2. Delete all the device listed
  3. Restart the system
  4. Open xcode you will see device with name
  5. If you want add addition device version that you can add from windows->devices and tap + button.


回答5:

Recreate XCode Simulators Automatically

Use this Script to recreate XCode Simulators automatically https://stackoverflow.com/a/35600096/1996802