Каждый раз, когда я создаю новую площадку для тестирования кода, Xcode зависает и не запускает код. Он просто представляет оператор «Запуск игровой площадки» или «Запуск симулятора» в верхней части экрана со значком загрузки, который многообещающе вращается рядом с ним, но ничего не происходит. Иногда это продолжается бесконечно, а иногда Xcode останавливается и выводит на консоль:
Playground execution failed: error: Couldn't lookup symbols:
__swift_FORCE_LOAD_$_swiftCoreImage
__swift_FORCE_LOAD_$_swiftFoundation
_playground_log_hidden
_playground_logger_initialize
_playground_log_postprint
thread #1: tid = 0xc0cd0, 0x000000010ea7c3c0 MyPlayground`executePlayground, queue = 'com.apple.main-thread', stop reason = breakpoint 1.2
frame #0: 0x000000010ea7c3c0 MyPlayground`executePlayground
frame #1: 0x000000010ea7b9c0 MyPlayground`__37-[XCPAppDelegate enqueueRunLoopBlock]_block_invoke + 32
frame #2: 0x000000010f59625c CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
frame #3: 0x000000010f57b304 CoreFoundation`__CFRunLoopDoBlocks + 356
frame #4: 0x000000010f57aa75 CoreFoundation`__CFRunLoopRun + 901
frame #5: 0x000000010f57a494 CoreFoundation`CFRunLoopRunSpecific + 420
frame #6: 0x0000000114985a6f GraphicsServices`GSEventRunModal + 161
frame #7: 0x0000000110124f34 UIKit`UIApplicationMain + 159
frame #8: 0x000000010ea7b6e9 MyPlayground`main + 201
frame #9: 0x0000000112ad268d libdyld.dylib`start + 1
frame #10: 0x0000000112ad268d libdyld.dylib`start + 1
Я использую Xcode 8.0 (8A218a) на macOS Sierra 10.12.
Аппаратное обеспечение :
MacBook Pro (13 дюймов, середина 2012 г.)
2,5 ГГц Intel Core i5
4 ГБ ОЗУ 1600 МГц DDR3
Я осмотрелся, но, по крайней мере, ни один из этих потоков не дал ответа:
https://forums.developer.apple.com/thread/5902
https://github.com/jas/playground/issues/9
То, что я уже пробовал безуспешно:
- Перезапуск Xcode
- Переустановка Xcode (понижен до 7.3, но, поскольку это не помогло, я обновился до 8.0)
- Перезагрузка машины
- Создание новой детской площадки
Есть идеи, как решить эту проблему? Я новичок в программировании и с нетерпением пытаюсь изучить Swift, но Xcode делает это практически невозможным ...
Заранее спасибо, ура.
Ответы:
Ответ Перейти на платформу macOS
Когда вы создаете площадку для игр, по умолчанию она выбирает платформу iOS и автоматически импортирует UIKit. Это UIKit, который постоянно дает сбой и зависает . Если ваш (практический) код не использует UIKit, вы можете переключиться на платформу MacOS . Как основная разница (не точно , хотя) между прошивкой и MacOS в AppKit и UIKit.
В правом верхнем углу игровой площадки Xcode нажмите показать / скрыть Утилиты -> инспектор файлов -> Настройка игровой площадки -> Платформа -> macOS
См. Снимок экрана ниже:
источник
Я пробовал следующее, и это сработало для меня:
источник
В моем случае Xcode 8.3.2 он работает, когда я пытаюсь выполнить следующие шаги:
источник
Основной процесс Buggy Simulator все еще работает даже после закрытия Xcode. Итак, вот шаги:
com.apple.CoreSimulator.CoreSimulatorService
процесс в Activity Monitor;источник
По моему опыту, вам следует:
Работает очень хорошо.
источник
Я отменил комментарий к первой строке. Это решило для меня. Обязательно попробуйте его после закрытия и перезапуска Xcode и принудительного выхода из com.apple.coresimulator из монитора активности.
источник
Добавление import PlaygroundSupport решило проблему для меня :)
источник
Вы можете перейти на ручную обработку. У меня это сработало.
источник
Убедитесь, что вы уничтожили xcode в мониторе активности, прежде чем в конечном итоге убить процесс com.apple.CoreSimulator.CoreSimulatorService в мониторе активности. Я пытался убить процесс несколько раз и понял, что если xcode все еще работает в фоновом режиме, то процесс com.apple.CoreSimulator.CoreSimulatorService снова появится, даже если вы его просто убили.
источник
У меня была та же проблема, все, что я сделал, это открыл редактор помощи, и у меня все работает нормально, даже когда я закрыл редактор помощи! Не спрашивайте, почему это было методом проб и ошибок. Надеюсь, что это поможет вам
источник
Я использую Xcode 10.2, и у меня такая же проблема. Так что обычно просто используйте Online Swift Playground
Это служит моим целям! :-)
источник
После нескольких часов работы над этим я понял, что случайно удалил эту ОЧЕНЬ важную строку, которая позволяет тестировать элементы UIKit перед тем, как передать мою игровую площадку на git:
// Present the view controller in the Live View window PlaygroundPage.current.liveView = MyViewController()
Facepalm. Надеюсь, это поможет кому-то выдергивать волосы на несколько часов.
источник
Для меня проблема заключалась в том, что MyPlayground синхронизировался с iCloud . Xcode сохраняет ваши файлы каждые несколько секунд, что приводит к состояниям «не отвечает».
Итак, есть простое решение - просто перейдите по ссылке:
Системные настройки - Apple ID - Приложения на этом Mac, использующие iCloud - iCloud Drive - Параметры - А затем снимите флажок «Игровая площадка»
Эта маленькая уловка помогает решить замороженный «Бег».
источник
через некоторое время вы увидите сообщение об ошибке, затем вы перейдете в режим просмотра> область отладки> активировать консоль, а затем снова сыграть, сработало для меня
источник
Проверьте тарифный план хранилища iCloud!
Если он у вас есть, он постоянно синхронизирует весь компьютер, включая папки рабочего стола и документов. Вместо этого попробуйте создать папку «Локальные файлы» в своей домашней папке (command + shift + h) и храните там свои проекты Playground, где они не синхронизируются с iCloud.
Это сработало для меня. Надеюсь, это сработает и для вас! :)
источник
В моем случае проблема была вызвана пользователем. У меня был отображен помощник редактора, но просмотр в реальном времени не был выбран. Убедитесь, что это выглядит так:
А не так:
источник
Также происходит, как и в моем случае, когда вы определили функцию, но забыли ее вызвать?
источник
Как будто на этот вопрос не было достаточно ответов, я предложу свое «решение» застрявшей проблемы игровых площадок Swift:
Единственное решение, с которым я столкнулся, отлично работает для меня (поэтому мне не нужно перезапускать Xcode):
Это заставит вращающуюся площадку "Running Playground ..." исчезнуть, и вы сможете запустить новое выполнение. Имейте в виду: следующее выполнение будет запущено,
launchd_sim
и все эти дочерние процессы снова начнутся. Вероятно, лучше всего было бы убить только соответствующий дочерний процесс. Но пока не нашел.Но я делаю это только тогда, когда я не использую симуляторы iOS параллельно, так как
launchd_sim
процесс является дочерним процессомSimulator
.источник
Я удалил производные данные и очистил папку сборки. У меня это работает. Я столкнулся с Xcode 11.2.1 и Xcode 10.1 на одном компьютере.
источник
Я столкнулся с той же проблемой, но после того, как погуглил и немного поэкспериментировал, я обнаружил, что нужно всегда
import UIKit
перед импортом любых других библиотек.источник
Во-первых, удалите встроенную строку комментария.
Тогда, даже если вы снова вставите комментарий в первой строке, он все равно будет работать.
источник
И последний совет, который мне подходит: убедитесь, что симулятор iOS не запущен. Они конфликтуют друг с другом.
источник