Как избавиться от ошибок “зависания” Xcode Playground с сообщениями “Launching Simulator” и “Running Playground”.

Вы когда-нибудь “зависали” с сообщениями ‘Launching Simulator‘ или ‘Running Playground‘ при запуске Playground некоторого кода? Несмотря на многократный повторный запуск Xcode или даже Mac, проблема все равно сохраняется. Я встречал много начинающих изучение Swift с помощью Playground, как это рекоммендует Apple, но они очень быстро сдаются именно из-за этой ошибки, что, конечно, очень грустно. Apple следует лучше работать в этом направлении и устранить имеющиеся в Playground ошибки, подобные этой.

У меня появилась эта ошибка, когда я пытался выполнить некоторый код на Playground и была обнаружена ошибка при выполнении кода.

После того, как ошибка была исправлена и код был изменен, я снова запустил Playground, и вот тут-то она и “зависла” на сообщении Running… 😱. Затем я вышел из Xcode и открыл Playground опять, все тоже самое – сообщение Running…😭.

Я пытался заново стартовать Xcode, Mac – все без пользы, я даже пытался заново переустановить Xcode. Затем я заметил, что он зависает на сообщении “Launching Simulator” и подумал, что это могло как-то повлиять на iOS Simulator, так как перезапуск Xcode не помогает 🤔.

Когда вы создаете Playground в Xcode, то по умолчанию используется iOS платформа для запуска кода и Playground подготавливает к запуску iOS Simulator в фоновом (background) режиме.

Это именно тот самый iOS Simulator, который вызывает ошибку “зависания”! Перезапуск Xcode не убирает эту ошибку, потому что процесс, связанный с симулятором, – это совершенно отдельный самостоятельный процесс, и он  не стартует заново при перезапуске Xcode.

Иногда процесс CoreSimulator становится нестабильным при возникновении ошибки на Playground. Playground зависает после обнаружения ошибки и продолжает зависать до тех пор, пока вы не “убьете” этот процесс. Именно в этом состоит причина того, что вы “зависаете” с сообщениями “Launching Simulator” или “Running..” даже после повторного запуска Xcode.

Обходные пути решения этой проблемы.

Решение этой проблемы заключается в переключении Playground на платформу macOS, что позволяет коду Playground работать напрямую в среде macOS  вместо того, чтобы запускать для этого процесс iOS simulator.

Во-первых, убедимся, что Playground не использует функции UIKit  (типа: UIView и т.д.) и уберем из самой верхней ее части строку import UIKit, если она там есть.

Затем в правой части окна Playground  выберем ‘macOS‘ в Playground Settings -> Platform.

Я также предлагаю установить “ручной режим запуска” Manually Run вместо “автоматического режима запуска” Automatically Run кода на Playground для того, чтобы меньше использовать процессорное (CPU) время.

Одна из причин. по которой Playground нещадно “поедает” процессорное (CPU) время, состоит в том, что он АВТОМАТИЧЕСКИ запускает ваш код каждые несколько секунд или при каждом нажатии клавиш. Для уменьшения потребления процессорного (CPU) времени, просто ВЫКЛЮЧИТЕ АВТОМАТИЧЕСКИЙ ЗАПУСК путем выбора опции Manually Run как показано на рисунке:

Теперь вы сможете успешно запустить Playground!

Некоторое ограничение этого решения заключается в том, что вынуждены были убрать строку import UIKit, и все относящиеся к UIKit функции, так как macOS не поддерживает UIKit.

Обходное решение, если вам необходимо использовать UIKit.

Если вы используете UIKit функции в Playground, то вы вынуждены использовать iOS Platform, так как UIKit поддерживается исключительно iOS.

Решение проблемы “зависания” Playground в этом случае состоит в том, что вам нужно выйти из  Xcode, открыть на вашем Mac приложение Activity Monitor (в Spotlight напечатайте  Activity Monitor для поиска нужного приложения), указать в поисковой строке ‘simulator‘, выбрать и подсветить процесс com.apple.CoreSimulator :

Далее вы принудительно (Force Quit)  “убиваете” этот процесс:

Процесс com.apple.CoreSimulator.CoreSimulatorService исчезает, и вы можете заново открыть Xcode, теперь он должен работать правильно. В этом случае я также предлагаю установить “ручной режим запуска” Manually Run вместо “автоматического режима запуска” Automatically Run кода на Playground.

Это перевод статьи “Fix (Workaround) for Xcode playground stuck in Launching Simulator or Running Playground”.

Решения, устаняющие “зависание” на Playground в можно также посмотреть на Stackoverflow.

4 thoughts on “Как избавиться от ошибок “зависания” Xcode Playground с сообщениями “Launching Simulator” и “Running Playground”.

  1. Хоть статья и старая, но автору спасибо! Только-только начал учить swift, как уже надоели вечные зависания… Проблема решена. Еще раз благодарю!

      • Видел, отличная информация, обязательно воспользуюсь. Пока что изучаю буквально азы – читаю документацию с оф.сайта и одновременно читаю её перевод на swiftbook.ru, а также смотрю видеокурс Алексея Скутаренко. Как только пройду его курс и дочитаю документацию – собираюсь приступать к Вашему материалу. Спасибо!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.