Jedes Mal, wenn ich einen neuen Spielplatz erstelle, um Code zu testen, bleibt Xcode hängen und führt den Code nicht aus. Am oberen Rand des Bildschirms wird lediglich die Anweisung "Laufspielplatz" oder "Simulator starten" angezeigt. Das Ladesymbol dreht sich vielversprechend daneben, aber es passiert nichts. Manchmal wird dies auf unbestimmte Zeit fortgesetzt und manchmal hält Xcode an und druckt dies auf der Konsole aus:
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
Ich verwende Xcode 8.0 (8A218a) unter macOS Sierra 10.12.
Hardware :
MacBook Pro (13 "Mitte 2012)
2,5 GHz Intel Core i5
4 GB 1600 MHz Ram DDR3
Ich habe mich umgesehen, aber zumindest keiner dieser Threads hat eine Antwort geliefert:
https://forums.developer.apple.com/thread/5902
https://github.com/jas/playground/issues/9
Dinge, die ich bereits ohne Erfolg versucht habe:
- Xcode neu starten
- Neuinstallation von Xcode (auf 7.3 heruntergestuft, aber da dies nicht geholfen hat, habe ich wieder auf 8.0 aktualisiert)
- Maschine neu starten
- Einen neuen Spielplatz schaffen
Haben Sie Ideen, wie Sie dieses Problem lösen können? Ich bin neu in der Programmierung und versuche eifrig, Swift zu lernen, aber Xcode macht es praktisch unmöglich ...
Vielen Dank im Voraus, Prost.
Antworten:
Ans. Wechseln Sie zur macOS-Plattform
Wenn Sie einen Spielplatz erstellen, wird standardmäßig die iOS-Plattform ausgewählt und UIKit automatisch importiert. Es ist das UIKit, das die ganze Zeit abstürzt und feststeckt . Wenn Ihr (Übungs-) Code UIKit nicht verwendet, können Sie zur MacOS-Plattform wechseln . Der Hauptunterschied (allerdings nicht genau) zwischen iOS und macOS besteht in APPKit und UIKit.
Klicken Sie in der oberen rechten Ecke Ihres Xcode-Spielplatzes auf Dienstprogramme ein- / ausblenden -> Dateiinspektor -> Spielplatzeinstellung -> Plattform -> macOS
Siehe Bildschirm unten:
quelle
Ich habe folgendes versucht und es hat bei mir funktioniert:
quelle
In meinem Fall, Xcode 8.3.2, funktioniert es, wenn ich die folgenden Schritte ausführe:
quelle
Der Hauptprozess von Buggy Simulator funktioniert auch nach dem Schließen von Xcode noch. Also hier sind die Schritte:
com.apple.CoreSimulator.CoreSimulatorService
Prozess in Activity Monitor;quelle
Nach meiner Erfahrung sollten Sie:
Es funktioniert sehr gut.
quelle
Ich habe den Kommentar in der ersten Zeile abgesagt. Es hat sich für mich gelöst. Stellen Sie sicher, dass Sie es versuchen, nachdem Sie Xcode geschlossen und neu gestartet haben, und erzwingen Sie das Beenden von com.apple.coresimulator aus dem Aktivitätsmonitor
quelle
Das Hinzufügen von import PlaygroundSupport hat das Problem für mich gelöst :)
quelle
Sie können zur manuellen Verarbeitung wechseln. Es hat bei mir funktioniert.
quelle
Stellen Sie sicher, dass Sie xcode im Aktivitätsmonitor beenden, bevor Sie den Prozess com.apple.CoreSimulator.CoreSimulatorService im Aktivitätsmonitor beenden . Ich habe mehrmals versucht, den Prozess zu beenden, und festgestellt, dass der Prozess com.apple.CoreSimulator.CoreSimulatorService auch dann erneut angezeigt wird, wenn xcode noch in der Hintergrundaktivität ausgeführt wird, selbst wenn Sie ihn gerade beendet haben.
quelle
Ich hatte das gleiche Problem. Ich habe nur den Assistance-Editor geöffnet und alles funktioniert einwandfrei, auch wenn ich den Assistance-Editor geschlossen habe! Fragen Sie nicht, warum es Versuch und Irrtum war. Hoffe das wird dir helfen
quelle
Nachdem Sie eine Weile ausgeführt haben, wird eine Fehlermeldung angezeigt. Gehen Sie dann zu Ansicht> Debug-Bereich> Konsole aktivieren und spielen Sie erneut
quelle
Überprüfen Sie den iCloud-Speicherplan!
Wenn Sie einen haben, wird ständig der gesamte Computer synchronisiert, einschließlich Desktop- und Dokumentordner. Versuchen Sie stattdessen, einen Ordner "Lokale Dateien" in Ihrem Home-Ordner zu erstellen (Befehl + Umschalt + h) und behalten Sie Ihre Playground-Projekte dort, wo sie nicht mit iCloud synchronisiert werden.
Das hat bei mir funktioniert. Ich hoffe, das funktioniert auch bei Ihnen! :) :)
quelle
Ich verwende Xcode 10.2 und bekomme das gleiche Problem. Verwenden Sie also im Allgemeinen nur den Online Swift Playground
Das dient meinen Zwecken! :-)
quelle
In meinem Fall war das Problem vom Benutzer verursacht. Ich hatte den Assistenten-Editor angezeigt, aber die Live-Ansicht wurde nicht ausgewählt. Stellen Sie sicher, dass es so aussieht:
Und nicht so:
quelle
Kommt es auch vor, wie in meinem Fall, wenn Sie eine Funktion definiert haben, aber vergessen haben, sie aufzurufen?
quelle
Als ob diese Frage nicht genug Antworten hätte, werde ich meine "Lösung" für das Problem der festgefahrenen Swift-Spielplätze liefern:
Die einzige Lösung, auf die ich gestoßen bin und die für mich gut funktioniert (damit ich Xcode nicht neu starten muss):
Dies führt dazu, dass der sich drehende "Running Playground ..." verschwindet und Sie eine neue Ausführung auslösen können. Beachten Sie: Die nächste Ausführung wird gestartet
launchd_sim
und alle diese untergeordneten Prozesse werden erneut ausgeführt. Es wäre wahrscheinlich am besten, nur den relevanten untergeordneten Prozess zu töten. Aber ich habe es bisher nicht gefunden.Dies mache ich jedoch nur, wenn ich die iOS-Simulatoren nicht parallel verwende, da der
launchd_sim
Prozess ein untergeordneter Prozess von istSimulator
.quelle
Ich habe abgeleitete Daten gelöscht und den Build-Ordner bereinigt. Das funktioniert bei mir. Ich war mit Xcode 11.2.1 und Xcode 10.1 auf demselben Computer konfrontiert.
quelle
Ich hatte das gleiche Problem, aber nachdem ich ein bisschen gegoogelt und experimentiert hatte, fand ich heraus, dass man es immer
import UIKit
tun muss, bevor man andere Bibliotheken importiert.quelle
Löschen Sie zunächst die eingebaute Kommentarzeile.
Selbst wenn Sie einen Kommentar in der ersten Zeile wieder einfügen, funktioniert dies dennoch.
quelle
Ein letzter Tipp, der für mich funktioniert: Stellen Sie sicher, dass kein iOS-Simulator ausgeführt wird. Sie widersprechen sich.
quelle