Когда я выбираю симулятор из xcode 6, я получаю несколько вариантов выбора симулятора, но симулятор поставляется с UDID. Пожалуйста, см. Изображение ниже и, пожалуйста, помогите мне. Спасибо заранее.
Когда я выбираю симулятор из xcode 6, я получаю несколько вариантов выбора симулятора, но симулятор поставляется с UDID. Пожалуйста, см. Изображение ниже и, пожалуйста, помогите мне. Спасибо заранее.
killall Xcode
- Убивает все выполняемые процессы Xcode.
sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService
- Убивает все запущенные процессы CoreSimulatorService.
rm -rf ~/Library/Developer/CoreSimulator/Devices
- Удаляет все данные симулятора из всех симуляторов.
open /Applications/Xcode.app
- открывает Xcode.
В Xcode перейдите в Окно → Устройства (ярлык - Cmd +!)
На левой панели удалите все лишние симуляторные устройства (выберите в левой панели и нажмите "Удалить" на клавиатуре)
Обычно это те, у которых нет ОС (показано iOS: n/a).
Обычно это происходит, когда вы пытаетесь скопировать старые версии симуляторов непосредственно в папки SDK, а не устанавливать их из Xcode → Preferences.
Как исправить его
Xcode использует версию устройства для устранения неоднозначности устройств с тем же именем. Если два устройства имеют одинаковое имя и номер версии, они будут использовать UDID устройств.
У вас есть 4 каждого из множества устройств (например, iPhone 5s). Я подозреваю, что некоторые из них предназначены для той же версии iOS. Вы должны удалить некоторые дубликаты. Проверьте xcrun simctl list
и xcrun simctl delete
или используйте диспетчер устройств в Xcode.app(нажмите "-", чтобы удалить устройство).
Как только вернуться к состоянию по умолчанию
# 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
Почему это может происходить:
CoreSimulatorService будет следить за добавлением новых сеансов симулятора в /Library/Developer/CoreSimulator/Profiles (например, при загрузке их из Xcode → Настройки → Загрузки). При установке новой среды выполнения CoreSimulatorService создаст исходный набор устройств для этой среды выполнения.
Эта проблема возникает, если одновременно запущено несколько экземпляров CoreSimulatorService. Каждый экземпляр CoreSimulatorService создаст свой собственный набор устройств (но его клиенты будут видеть, что экземпляры сначала устанавливаются). При последующих запусках (например: после перезагрузки) будут показаны обе копии. Можно перейти в состояние, когда одновременно запускаются несколько копий CoreSimulatorService из-за тестирования бета-версий Xcode.app в том же сеансе входа в систему, что и при использовании выпущенного Xcode.app, или путем использования Xcode.app до и после обновления через App Store.
Если вам известно о каком-либо другом способе, с которым может произойти эта ошибка, пожалуйста, напишите новый радар в http://bugreport.apple.com
Как упоминалось в @ameer-sheikh, перейдите в Window > Devices Вероятно, у вас есть несколько устройств с той же версией iOS. У меня была такая же проблема, и после выбора каждого повторяющегося устройства и нажатия delete я смог восстановить порядок в раскрывающемся списке "Мои устройства"
Перейдите в окно → Устройства (ярлык - Cmd + Shift + 2) На левой панели удалите все лишние симуляторные устройства (выберите в левой панели и нажмите "Удалить" на клавиатуре) Обычно это те, у которых нет ОС (показаны iOS: n/a). Обычно это происходит, когда вы пытаетесь скопировать старые версии симуляторов непосредственно в папки SDK, а не устанавливать их из Xcode → Preferences.
Команды bash в другом ответе, вероятно, проще, но вы можете попробовать это для более простого и более сложного решения:
gem install snapshot; snapshot reset_simulators
https://github.com/KrauseFx/snapshot
через @saniul