Il parco giochi Xcode si blocca su "Esecuzione di un parco giochi" o "Avvio del simulatore" e non esegue il codice, cosa fare?


144

Ogni volta che creo un nuovo parco giochi per testare del codice, Xcode si blocca e non esegue il codice. Presenta semplicemente la scritta "Running playground" o "Launching simulator" nella parte superiore dello schermo con l'icona di caricamento che gira promettente accanto ad essa, ma non succede nulla. A volte questo continua indefinitamente e a volte Xcode si ferma e lo stampa sulla console:

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

Sto eseguendo Xcode 8.0 (8A218a) su macOS Sierra 10.12.

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

Mi sono guardato intorno ma almeno nessuno di questi thread ha fornito una risposta:
https://forums.developer.apple.com/thread/5902
https://github.com/jas/playground/issues/9

Cose che ho già provato senza successo:

  • Riavvio di Xcode
  • Reinstallazione di Xcode (downgrade a 7.3 ma poiché ciò non ha aiutato, ho eseguito l'upgrade a 8.0)
  • Riavvio della macchina
  • Creare un nuovo parco giochi

Hai qualche idea su come risolvere questo problema? Sono nuovo nella programmazione e cerco ardentemente di imparare Swift ma Xcode lo rende praticamente impossibile ...

Grazie in anticipo, evviva.


Grazie per la tua rapida risposta. Sto usando il parco giochi semplicemente perché in realtà ho un abbonamento attivo su Treehouse.com e incoraggiano l'uso del parco giochi quando testano nuovi concetti.
Emil Osvald,

1
Capisco, ma il mio pensiero è che stai "cercando con impazienza di imparare Swift" e in questo momento sei bloccato. Se riesci a creare un nuovo progetto di app ed eseguirlo, puoi procedere. Ora, se anche tu non puoi eseguire un progetto di app, allora hai problemi più profondi. :)
matt

Questo è sicuramente vero. Grazie per il tuo contributo opaco, farò come hai suggerito fino a quando non esiste una soluzione migliore. Terrò comunque attivo questo thread nel caso in cui qualcuno abbia trovato una soluzione.
Emil Osvald,

2
Non ho consigli da dare qui, @EmilOsvald. Posso segnalare che ciò accade spesso anche sul mio MacBook (e che è successo tutto il tempo in cui ho usato anche iMac, tutte le nuove macchine con gli ultimi aggiornamenti). Non dovresti sentirti in colpa per voler usare Playgrounds. In teoria sono un ottimo prodotto e quando funzionano lo sono.
Ilias Karim,

1
Non ci dovrebbero essere spazi prima del primo commento (se la prima riga di testo è un commento), né una riga vuota come prima riga. Fammi sapere.
Daniel Springer,

Risposte:


191

Ans. Passa alla piattaforma macOS

Quando crei un parco giochi, per impostazione predefinita seleziona la piattaforma iOS e importa automaticamente UIKit. È l'UIKit che si schianta e si blocca continuamente . Se il tuo codice (pratico) non utilizza UIKit, puoi passare alla piattaforma MacOS . La differenza principale (non esatta però) tra iOS e macOS è in APPKit e UIKit.

Nell'angolo in alto a destra del tuo parco giochi Xcode, fai clic su mostra / nascondi Utilità -> Impostazioni file -> Impostazioni parco giochi -> Piattaforma -> macOS

Vedi screenShot di seguito: inserisci qui la descrizione dell'immagine


4
Questo sembra funzionare per me insieme all'impostazione del pulsante di esecuzione del parco giochi su manuale.
Risolveranno

2
Grazie funziona bene quando si utilizza Foundation, esattamente quello di cui avevo bisogno. Non riesco a credere che i Playground abbiano così tanti bug ...
Adrien Yvon,

15
Ridicolo. 3 righe di codice (nessuna delle quali importa UIKit) e devo cercarlo su Google. Molte persone rinunciano e dichiarano Swift inutile.
James Bedford,

4
Questo non funziona per me. Sto usando Xcode 9.4.1 (non la beta) e devo riavviare continuamente Xcode. Abbastanza zoppo ...
Michael Rogers,

1
Inoltre, se il parco giochi diventa abbastanza grande, Cmd + Maiusc + Invio smette di funzionare. Chi diavolo ha programmato questa merda? Bambini che usano i Playgrounds su iPad?
Robo Robok,

70

Ho provato quanto segue e ha funzionato per me:

  1. premere il pulsante "stop playground" in basso
  2. rimuove la prima riga di commento e trasforma la prima riga nell'istruzione import. nessuno spazio sopra l'importazione.
  3. premere il pulsante di esecuzione

1
Ho scoperto che nessuno spazio dovrebbe essere presente prima di un commento, ma puoi avere un commento come prima riga. Solo nessuna linea vuota prima di essa, né rientro prima di essa, sulla sua linea.
Daniel Springer,

3
Aggiungo a ciò la necessità di riavviare Xcode. Sembra funzionare per me.
jeb_is_a_mess,

26
Ha funzionato per me. Non riesco a credere quanto sia ridicolo questo errore. Apple dovrebbe vergognarsi.
gangelo,

1
riavviare xcode è stata l'unica cosa che ha funzionato per me
George Filippakos,

1
Eccezionale. Ho provato a chiudere xcode, a cancellare i dati derivati ​​ecc. Ma niente ha funzionato tranne questo. Anche se avevo già importato in prima linea!
Shivam Pokhriyal,

58

Nel mio caso, Xcode 8.3.2, funziona quando provo come segue:

  1. File -> Chiudi "Name.playground"
  2. File -> Chiudi area giochi
  3. Esci da Xcode
  4. Riapri Xcode

2
Offrendo qualcosa oltre a me, qualcuno che utilizza il moderno XCode ha un'idea della causa principale di questo errore? Questo risulta essere il miglior lavoro non invasivo in circolazione, tuttavia, non considererei nulla a parte la risoluzione dei problemi una soluzione. I commenti nell'intestazione del parco giochi hanno davvero qualche parte nel problema? E cosa dice Apple in merito alla causa?
truedat101

Questo ha funzionato per me insieme alla rimozione della riga vuota prima della mia dichiarazione di stampa.
FromTheStix,

2
Ug, che modo pessimo per aggirare un problema IDE.
PruitIgoe,

D'accordo, questo è super zoppo.
Ilias Karim,

51

Il processo principale di Buggy Simulator funziona ancora anche dopo la chiusura di Xcode. Quindi, ecco i passaggi:

  1. Esci da Xcode;
  2. Termina com.apple.CoreSimulator.CoreSimulatorServiceprocesso in Activity Monitor;
  3. Avvia Xcode ed esegui il tuo parco giochi.

1
Mi piace questa risposta più di altre risposte, perché si arriva più al cuore della questione
artigianale

1
Devo farlo ogni volta?
Vaibhav Saran,

20

Nella mia esperienza, dovresti:

  1. Impedisci l'aggiornamento del parco giochi Swift tenendo premuto: la freccia ► nella parte in basso a sinistra del parco giochi e selezionando "Esegui manualmente"
  2. Esci da Xcode
  3. Riavvia Xcode

Funziona molto bene


4
Ma non è il punto centrale di Playground eseguire il codice mentre è scritto?
saphryn,

16

Ho cancellato il commento sulla prima riga. Ha risolto per me. Assicurati di provarlo dopo aver chiuso e riavviato Xcode e forzare l'uscita da com.apple.coresimulator da Activity Monitor


1
Su XCode 8.2.1, questo ha funzionato per me. Una volta eliminato il commento di prima riga sui campi da gioco, è stato eseguito rapidamente. Non ho dovuto forzare l'uscita dal simulatore.
jessi,

Grazie alla risposta @Fiveagle. Ho dovuto, in effetti, forzare il processo di coresimulator, rimuovere le prime righe, quindi "import UIKit" è la prima riga. E il riavvio di XCode ha fatto i trucchi, ma la prima compilation ha richiesto del tempo per essere eseguita.
yves Baumes,

13

L'aggiunta di import PlaygroundSupport ha risolto il problema per me :)


2
Interessante. Da dove l'hai preso?
Daniel Springer,

Se è efficace come dici tu, penseresti che gli sviluppatori lo includano per impostazione predefinita. Proverò con questo. Grazie!
saphryn,

6

È possibile passare all'elaborazione manuale. Ha funzionato per me. immagine dello schermo


3

Assicurati di uccidere xcode nel monitor attività prima di terminare infine il processo com.apple.CoreSimulator.CoreSimulatorService nel monitor attività. Ho provato ad uccidere il processo diverse volte e mi sono reso conto se xcode è ancora in esecuzione nell'attività in background, quindi il processo com.apple.CoreSimulator.CoreSimulatorService comparirà di nuovo anche quando lo hai appena ucciso.


2

Ho avuto lo stesso problema, tutto quello che ho fatto è stato aprire l'editor Assistenza e tutto funziona bene con me anche quando ho chiuso l'editor Assistenza! Non chiedere perché è stato tentativi ed errori. Spero che questo ti possa aiutare


In realtà è un'ottima idea. Dal momento che il pulsante play / stop non agita il processo o forza un aggiornamento, immagino che tu possa pensare di attivare e disattivare l'Assistente Editor come un sostituto del pulsante play lol. Eccezionale :)).
saphryn,

0

dopo un po 'di tempo vedrai un messaggio di errore, quindi vai a visualizzare> area di debug> attiva la console e poi gioca di nuovo ha funzionato per me


1
Che cosa è un po '? 5 minuti? Un giorno?
Daniel Springer,

da 5 a 15 minuti forse, dopo alcune settimane di questo problema sono passato a SSD e ho aggiornato a 16 GB di memoria RAM e si è risolto, come il cambio diurno e notturno
CrtlBreak

0

Controlla il piano di archiviazione di iCloud!

Se ne hai uno, sincronizza costantemente l'intero computer che include cartelle desktop e documenti. Prova invece a creare una cartella "File locali" nella cartella Home (comando + maiusc + h) e mantieni i tuoi progetti Playground lì, dove non si sincronizza con iCloud.

Questo ha funzionato per me. Spero che funzioni anche per te! :)


Questo ha funzionato davvero per me. Chiunque abbia questo problema dovrebbe davvero provarlo.
Peter Schorn,


0

Nel mio caso il problema è stato indotto dall'utente. Avevo visualizzato l'assistente editor, ma la vista live non era selezionata. Assicurati che assomigli a questo:

Dal vivo

E non così:

inserisci qui la descrizione dell'immagine


0

Succede anche, come nel mio caso, quando hai definito una funzione, ma hai dimenticato di chiamarla?


0

Come se questa domanda non avesse abbastanza risposte, fornirò la mia "soluzione" al problema dei parchi giochi Swift bloccati:

L'unica soluzione che ho trovato che funziona bene per me (quindi non devo riavviare Xcode):

killall launchd_sim

Ciò farà sparire "Running Playground ..." che gira e puoi innescare una nuova esecuzione. Attenzione: la prossima esecuzione sta per girare launchd_sime tutti quei processi secondari verranno processati nuovamente. Probabilmente sarebbe meglio uccidere solo il processo figlio rilevante. Ma non l'ho trovato finora.

Ma lo faccio solo quando non sto usando i simulatori iOS in parallelo, poiché il launchd_simprocesso è un processo figlio di Simulator.


0

Ho cancellato i dati derivati ​​e pulito la cartella di build. Questo funziona per me. Stavo affrontando Xcode 11.2.1 e Xcode 10.1 sulla stessa macchina.


-1

Stavo affrontando lo stesso problema, ma dopo aver cercato su Google e sperimentato un po ', ho scoperto che bisogna sempre import UIKitprima di importare qualsiasi altra libreria.


-1

Innanzitutto, elimina la riga di commento incorporata.

Quindi, anche se inserisci un commento di prima riga, funziona ancora. inserisci qui la descrizione dell'immagine


-1

Un ultimo suggerimento che funziona per me: assicurati che nessun simulatore iOS sia in esecuzione. Sono in conflitto tra loro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.