Xcode playground se atasca en 'Running playground' o 'Launching simulator' y no ejecuta el código, ¿qué hacer?

144

Cada vez que creo un nuevo patio de recreo para probar un código, Xcode se atasca y no ejecuta el código. Simplemente presenta la declaración 'Running playground' o 'Launching simulator' en la parte superior de la pantalla con el icono de carga girando prometedoramente al lado, pero no sucede nada. A veces esto continúa indefinidamente y a veces Xcode se detiene e imprime esto en la consola:

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

Estoy ejecutando Xcode 8.0 (8A218a) en macOS Sierra 10.12.

Hardware :
MacBook Pro (13 "mediados de 2012)
2,5 GHz Intel Core i5
4 GB 1600 MHz Ram DDR3

He mirado a mi alrededor, pero al menos ninguno de estos hilos ha proporcionado una respuesta:
https://forums.developer.apple.com/thread/5902
https://github.com/jas/playground/issues/9

Cosas que ya he probado con cero éxito:

  • Reiniciar Xcode
  • Reinstalar Xcode (degradado a 7.3 pero como eso no ayudó, actualicé nuevamente a 8.0)
  • Reiniciar la máquina
  • Creando un nuevo patio de recreo

¿Tienes alguna idea sobre cómo resolver este problema? Soy nuevo en programación e intento aprender Swift con entusiasmo, pero Xcode lo está haciendo prácticamente imposible ...

Gracias de antemano, saludos.

Emil Osvald
fuente
Gracias por su rápida respuesta. Estoy usando el patio de recreo simplemente porque en realidad tengo una suscripción activa en Treehouse.com y me alientan a usar el patio de recreo cuando pruebo nuevos conceptos.
Emil Osvald
1
Entiendo, pero mi pensamiento es que estás "ansiosamente tratando de aprender Swift" y ahora estás atrapado. Si puede hacer un nuevo proyecto de aplicación y ejecutarlo, puede continuar. Ahora, si tampoco puede ejecutar un proyecto de aplicación, entonces tiene problemas más profundos. :)
mate
Eso es definitivamente cierto. Gracias por su aporte mate, haré lo que sugirió siempre que no haya una solución mejor. Sin embargo, aún mantendré este hilo activo en caso de que alguien haya encontrado una solución.
Emil Osvald
2
No tengo ningún consejo que dar aquí, @EmilOsvald. También puedo informar que esto sucede con frecuencia en mi MacBook (y sucedió todo el tiempo cuando también utilicé iMacs, todas las máquinas nuevas con las últimas actualizaciones). No debe sentirse culpable por querer usar Playgrounds. En teoría son un gran producto y cuando funcionan lo son.
Ilias Karim
1
No debe haber espacios antes del primer comentario (si la primera línea de texto es un comentario), ni una línea vacía como la primera línea. Házmelo saber.
Daniel Springer

Respuestas:

191

Resp. Cambiar a la plataforma macOS

Cuando crea un Playground, por defecto selecciona la plataforma iOS e importa automáticamente UIKit. Es el UIKit que se bloquea y se atasca todo el tiempo . Si su código (de práctica) no usa UIKit, puede cambiar a la plataforma MacOS . Como gran diferencia (aunque no exacta) entre iOS y macOS está en APPKit y UIKit.

En la esquina superior derecha de su Xcode Playground, haga clic en mostrar / ocultar Utilidades -> inspector de archivos -> Configuración del área de juegos -> Plataforma -> macOS

Ver captura de pantalla a continuación: ingrese la descripción de la imagen aquí

PANKAJ VERMA
fuente
44
Esto pareció funcionar para mí junto con configurar el botón de ejecución del patio de juegos en manual. Sin embargo, ¿alguna vez arreglarán esto? Parece un poco basura
hoboBob
2
Gracias, funciona bien cuando uso Foundation, exactamente lo que necesitaba. No puedo creer que los parques infantiles tengan tantos errores ...
Adrien Yvon
15
Ridículo. 3 líneas de código (ninguna de las cuales importa UIKit) y tengo que googlear esto. Mucha gente simplemente se rendiría y declararía inútil a Swift.
James Bedford
44
Esto no funciona para mi. Estoy usando Xcode 9.4.1 (no la beta), y tengo que reiniciar continuamente Xcode. Bastante cojo ...
Michael Rogers
1
Además, si el patio de recreo se vuelve lo suficientemente grande, Cmd + Shift + Enter deja de funcionar. ¿Quién demonios programó esta basura? ¿Niños que usan Playgrounds en iPad?
Robo Robok
70

He intentado lo siguiente y funcionó para mí:

  1. presione el botón inferior "detener patio de juegos"
  2. elimine la primera línea de comentario y haga que la declaración de importación sea la primera línea. sin espacio por encima de la importación.
  3. presione el botón de ejecución
Aaeb
fuente
1
Descubrí que tampoco debe haber espacio antes de un comentario, pero puede tener un comentario como primera línea. Simplemente no hay una línea vacía antes, ni sangría antes, en su línea.
Daniel Springer
3
Agregaría a eso la necesidad de reiniciar Xcode. Parece funcionar para mí
jeb_is_a_mess
26
Trabajó para mi. No puedo creer lo ridículo que es este error. Apple debería estar avergonzado.
gangelo
1
reiniciar xcode fue lo único que funcionó para mí
George Filippakos
1
Increíble. Intenté salir de xcode, borrar datos derivados, etc. pero nada funcionó excepto esto. ¡Aunque ya tenía importación en la primera línea!
Shivam Pokhriyal
58

En mi caso, Xcode 8.3.2, funciona cuando lo intento como los pasos a continuación:

  1. Archivo -> Cerrar "Name.playground"
  2. Archivo -> Cerrar zona de juegos
  3. Salir de Xcode
  4. Reabrir Xcode
Khoa Vo
fuente
2
Al ofrecer algo además de mí, ¿alguien que usa XCode moderno tiene una idea de la causa raíz de esta falla? Este resulta ser el mejor trabajo no invasivo, sin embargo, no consideraría nada menos que la resolución de problemas como una solución. ¿Los comentarios en el encabezado del patio realmente tienen alguna parte en el problema? ¿Y qué dice Apple con respecto a la causa?
truedat101
Esto funcionó para mí junto con eliminar la línea vacía antes de mi declaración de impresión.
FromTheStix
2
Ug, qué mala manera de evitar un problema de IDE.
PruitIgoe
De acuerdo, esto es súper cojo.
Ilias Karim
51

El proceso principal de Buggy Simulator sigue funcionando incluso después del cierre de Xcode. Así que aquí están los pasos:

  1. Salir de Xcode;
  2. Matar com.apple.CoreSimulator.CoreSimulatorServiceproceso en el monitor de la actividad;
  3. Inicia Xcode y ejecuta tu Playground.
dbv
fuente
1
Me gusta esta respuesta más que otras respuestas porque llega al meollo de la cuestión
crea el
1
¿Necesito hacer esto cada vez?
Vaibhav Saran
20

En mi experiencia, deberías:

  1. Evite la actualización rápida del área de juegos, manteniendo presionada la flecha ► en la parte inferior izquierda del área de juegos y seleccionando "Ejecutar manualmente"
  2. Salir de Xcode
  3. Reiniciar Xcode

Funciona muy bien.

grano
fuente
44
¿Pero no es todo el objetivo de Playground ejecutar su código tal como está escrito?
saphryn
16

He cancelado el comentario en la primera línea. Se resolvió para mí. Asegúrese de probarlo después de haber cerrado y relanzado Xcode y forzar el cierre de com.apple.coresimulator desde Activity Monitor

Fiveagle
fuente
1
En XCode 8.2.1, esto funcionó para mí. Una vez que eliminé el comentario de la primera línea sobre parques infantiles, se ejecutó rápidamente. No tuve que forzar la salida del simulador.
jessi
Gracias a la respuesta de @Fiveagle. De hecho, tuve que forzar qui el proceso del coresimulador, eliminar las primeras líneas para que "importar UIKit" sea la primera línea. Y reiniciar XCode hizo los trucos, pero la primera compilación tardó un tiempo en realizarse.
yves Baumes
13

Agregar importación PlaygroundSupport resolvió el problema para mí :)

SiBC
fuente
2
Interesante. ¿De dónde sacaste esto?
Daniel Springer
Si es tan efectivo como dices, pensarías que los desarrolladores incluirían eso por defecto. Experimentaré con esto. ¡Gracias!
saphryn
6

Puede cambiar al procesamiento manual. Funcionó para mi. captura de pantalla

Sandhu
fuente
3

Asegúrese de eliminar xcode en el monitor de actividad antes de acabar con el proceso com.apple.CoreSimulator.CoreSimulatorService en el monitor de actividad. Intenté matar el proceso varias veces y me di cuenta de que si xcode aún se estaba ejecutando en la actividad en segundo plano, el proceso com.apple.CoreSimulator.CoreSimulatorService volvería a aparecer incluso cuando lo acabaras de matar.

Asad Abbas
fuente
2

Tuve el mismo problema, ¡todo lo que hice fue abrir el editor de Asistencia y todo funciona bien incluso cuando cerré el editor de Asistencia! No preguntes por qué fue prueba y error. Espero que esto te ayudará

Farisk
fuente
Esa es realmente una gran idea. Dado que el botón reproducir / detener no agita el proceso ni fuerza una actualización, supongo que puede pensar en activar y desactivar el Editor Asistente como un reemplazo para el botón de reproducción lol. Increíble :)).
saphryn
0

después de correr un rato, verá un mensaje de error, luego vaya a ver> área de depuración> activar consola y luego jugar nuevamente funcionó para mí

CrtlBreak
fuente
1
Que es un rato ¿5 minutos? ¿Un día?
Daniel Springer
de 5 a 15 minutos, tal vez, después de algunas semanas de este problema he cambiado a SSD y actualizado a 16 GB de memoria RAM y su resuelto, como el día y la noche cambio
CrtlBreak
0

¡Comprueba el plan de almacenamiento de iCloud!

Si tiene uno, sincroniza constantemente toda la computadora que incluye carpetas de escritorio y documentos. En su lugar, intente crear una carpeta "Archivos locales" en su carpeta de Inicio (comando + shift + h) y mantenga sus proyectos de Playground allí, donde no se sincroniza con iCloud.

Esto funcionó para mí. ¡Espero que esto también funcione para usted! :)

Sree Ramana
fuente
Esto realmente funcionó para mí. Cualquier otra persona que tenga este problema realmente debería intentarlo.
Peter Schorn
0

Estoy usando Xcode 10.2 y obtengo el mismo problema. Así que, por lo general, solo usa el Swift Playground en línea

¡Esto sirve a mis propósitos! :-)

DialDT
fuente
0

En mi caso, el problema fue inducido por el usuario. Tenía el editor asistente mostrado, pero la vista en vivo no estaba seleccionada. Asegúrate de que se vea así:

Vista en vivo

Y no así:

ingrese la descripción de la imagen aquí

Mozahler
fuente
0

También sucede, como en mi caso, cuando has definido una función, pero has olvidado llamarla.

msimons
fuente
0

Como si esta pregunta no tuviera suficientes respuestas, proporcionaré mi "solución" al problema de los parques infantiles Swift:

La única solución que he encontrado que funciona bien para mí (por lo que no tengo que reiniciar Xcode):

killall launchd_sim

Esto hará que desaparezca el giro "Running Playground ..." y que puedas activar una nueva ejecución. Tenga en cuenta: la próxima ejecución va a girar launchd_simy todos esos procesos secundarios nuevamente. Probablemente sería mejor matar solo el proceso secundario relevante. Pero no lo encontré hasta ahora.

Pero hago esto solo cuando no estoy usando los Simuladores de iOS en paralelo, ya que el launchd_simproceso es secundario Simulator.

pd95
fuente
0

Eliminé datos derivados y limpié la carpeta de compilación. Esto funciona para mi. Me enfrentaba con Xcode 11.2.1 y Xcode 10.1 en la misma máquina.

pawan_kumar
fuente
-1

Estaba enfrentando el mismo problema, pero después de buscar en Google y experimentar un poco, descubrí que uno siempre debe hacerlo import UIKitantes de importar cualquier otra biblioteca.

Graisorn Soisakhoo
fuente
-1

En primer lugar, elimine la línea de comentarios incorporada.

Entonces, incluso si vuelve a poner un comentario de primera línea, aún funciona. ingrese la descripción de la imagen aquí

Harry McGovern
fuente
-1

Un último consejo que me funciona: asegúrese de que no se esté ejecutando ningún simulador de iOS. Entran en conflicto entre ellos.

ahbou
fuente