Chaque fois que je crée un nouveau terrain de jeu afin de tester du code, Xcode reste bloqué et ne s'exécute pas. Il présente simplement la déclaration "Running playground" ou "Launching simulator" en haut de l'écran avec l'icône de chargement qui tourne à côté, mais rien ne se passe. Parfois, cela continue indéfiniment et parfois, Xcode s’arrête et l’affiche sur la 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
J'utilise Xcode 8.0 (8A218a) sur macOS Sierra 10.12.
Matériel :
MacBook Pro (13 "Mi-2012)
Intel Core i5 à 2,5 GHz
4 Go 1600 MHz Ram DDR3
J'ai regardé autour de moi mais au moins aucune de ces discussions n'a fourni de réponse:
https://forums.developer.Apple.com/thread/5902
https://github.com/jas/playground/issues/9
Choses que j'ai déjà essayées avec zéro succès:
Avez-vous des idées sur la façon de résoudre ce problème? Je suis nouveau dans la programmation et j'essaie ardemment d'apprendre Swift mais Xcode rend cela pratiquement impossible ...
Merci d'avance, bravo.
Ans. Basculez vers la plate-forme macOS
Lorsque vous créez un terrain de jeu, il sélectionne par défaut la plate-forme iOS et importe automatiquement UIKit. C'est l'UIKit qui se bloque et reste bloqué tout le temps . Si votre code (pratique) n'utilise pas UIKit, vous pouvez basculer vers la plate-forme MacOS . En tant que majeur (pas exact cependant) la différence entre iOS et macOS est dans APPKit et UIKit.
Dans le coin supérieur droit de votre terrain de jeu Xcode, cliquez sur afficher/masquer Utilitaires -> inspecteur de fichiers -> Paramètres du terrain de jeu -> Plate-forme -> macOS
J'ai essayé ce qui suit et cela a fonctionné pour moi:
Dans mon cas, Xcode 8.3.2, cela fonctionne lorsque j'essaie comme suit:
Le processus principal de Buggy Simulator fonctionne toujours même après la fermeture de Xcode. Alors voici les étapes:
com.Apple.CoreSimulator.CoreSimulatorService
processus dans le Moniteur d'activité;D'après mon expérience, vous devriez:
Il fonctionne très bien.
J'ai annulé le commentaire sur la première ligne. Cela a résolu pour moi. Assurez-vous de l'essayer après avoir fermé et relancé Xcode et forcé à quitter com.Apple.coresimulator à partir du moniteur d'activité.
Ajouter import PlaygroundSupport a résolu le problème pour moi :)
J'ai eu le même problème, tout ce que j'ai fait est d'ouvrir Assistant Editor et tout fonctionne bien avec moi, même lorsque j'ai fermé l'éditeur d'Assistance! Ne demandez pas pourquoi c'était un essai et une erreur. J'espère que cela vous aidera
Assurez-vous de supprimer xcode dans le moniteur d'activité avant de tuer com.Apple.CoreSimulator.CoreSimulatorService processus dans le moniteur d'activité. J'ai essayé de tuer le processus un certain nombre de fois et je me suis rendu compte que si xcode est toujours en cours d'exécution dans l'activité en arrière-plan, le processus com.Apple.CoreSimulator.CoreSimulatorService réapparaîtrait même lorsque vous venez de le tuer.
J'utilise Xcode 10.2 et j'obtiens le même problème. Donc, généralement, il suffit d'utiliser Online Swift Playground
Cela sert mes objectifs! :-)
après avoir fonctionné pendant un moment, vous verrez un message d'erreur, puis vous allez voir> la zone de débogage> activer la console puis jouer à nouveau a fonctionné pour moi