167 votes

Xcode playground reste bloqué sur 'Running playground' ou 'Launching simulator' et n'exécute pas le code, que faire ?

Chaque fois que je crée un nouveau terrain de jeu afin de tester du code, Xcode se bloque et ne veut pas exécuter le code. Il affiche simplement la déclaration "Running playground" ou "Launching simulator" en haut de l'écran avec l'icône de chargement qui tourne de manière prometteuse à côté, mais rien ne se passe. Parfois, cela continue indéfiniment et parfois Xcode s'arrête et affiche ceci dans 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 informatique :
MacBook Pro (13" mi-2012)
Intel Core i5 2,5 GHz
4 GB 1600 MHz Ram DDR3

J'ai cherché mais aucun de ces fils n'a apporté de réponse :
https://forums.developer.apple.com/thread/5902
https://github.com/jas/playground/issues/9

Des choses que j'ai déjà essayées sans succès :

  • Redémarrage de Xcode
  • Réinstallation de Xcode (j'ai rétrogradé à la version 7.3 mais comme cela n'a pas aidé, j'ai j'ai remis à niveau vers 8.0)
  • Redémarrage de la machine
  • Créer une nouvelle aire de jeux

Avez-vous des idées sur la façon de résoudre ce problème ? Je suis novice en programmation et j'essaie d'apprendre Swift avec enthousiasme, mais Xcode rend la chose pratiquement impossible...

Merci d'avance, à bientôt.

1 votes

Merci pour votre réponse rapide. J'utilise playground simplement parce que j'ai un abonnement actif chez Treehouse.com et qu'ils encouragent l'utilisation de playground pour tester de nouveaux concepts.

1 votes

Je comprends, mais je pense que vous êtes "impatient d'apprendre Swift" et que pour l'instant vous êtes bloqué. Si vous pouvez créer un nouveau projet d'application et l'exécuter, vous pouvez continuer. Maintenant, si vous ne pouvez pas non plus exécuter un projet d'application, alors vous avez des problèmes plus profonds :)

1 votes

C'est tout à fait vrai. Merci pour votre contribution Matt, je vais faire ce que vous avez suggéré tant qu'il n'y a pas de meilleure solution. Je vais néanmoins garder ce fil de discussion actif au cas où quelqu'un aurait trouvé une solution.

223voto

PANKAJ VERMA Points 1770

Ans. Passage à la plateforme macOS

Lorsque vous créez un terrain de jeu, il sélectionne par défaut la plateforme iOS et importe automatiquement UIKit. C'est l'UIKit qui plante et bloque tout le temps. . Si votre code (pratique) n'utilise pas UIKit alors vous pouvez passage à la plate-forme MacOS . Comme principal (La différence entre iOS et macOS réside dans APPKit et UIKit.

Dans le coin supérieur droit de votre Xcode Playground, cliquez sur show/hide Utilities--> file inspector --> Playground Setting--> Platform--> macOS.

Voir la capture d'écran ci-dessous : enter image description here

4 votes

Cela semble fonctionner pour moi, ainsi que le réglage du bouton d'exécution de l'aire de jeu sur manuel. Est-ce qu'ils vont un jour corriger ce problème, ça fait un peu trash.

3 votes

Merci, cela fonctionne bien en utilisant Foundation, exactement ce dont j'avais besoin. Je n'arrive pas à croire que les Playgrounds ont autant de bugs...

23 votes

Ridicule. 3 lignes de code (dont aucune n'importe UIKit) et je dois googler ça. Beaucoup de gens abandonneraient tout simplement et déclareraient Swift inutile.

73voto

Aaeb Points 629

J'ai essayé ce qui suit et cela a fonctionné pour moi :

  1. appuyez sur le bouton inférieur "arrêter le terrain de jeu".
  2. supprimer la première ligne de commentaire et faire de la déclaration d'importation la première ligne. ligne. Pas d'espace au-dessus de l'import.
  3. appuyer sur le bouton d'exécution

1 votes

J'ai constaté qu'aucun espace ne doit être présent avant un commentaire non plus - mais vous peut ont un commentaire en première ligne. Il n'y a pas de ligne vide avant, ni d'indentation avant, sur sa ligne.

3 votes

J'ajouterais à cela la nécessité de redémarrer Xcode. Cela semble fonctionner pour moi.

28 votes

Ça a marché pour moi. Je ne peux pas croire à quel point ce bug est ridicule. Apple devrait avoir honte.

61voto

Kyle Vo Points 715

Dans mon cas, Xcode 8.3.2, cela fonctionne lorsque j'essaie comme les étapes ci-dessous :

  1. Fichier -> Fermer "Nom.terrain de jeu"
  2. Fichier -> Fermer le terrain de jeu
  3. Quitter Xcode
  4. Rouvrir Xcode

2 votes

Si quelqu'un qui utilise un XCode moderne a une idée de la cause première de cet échec, c'est aussi moi. Il s'avère que c'est la meilleure solution non invasive, cependant, je ne considérerais pas comme une solution tout ce qui n'est pas la résolution du problème. Les commentaires dans l'en-tête du terrain de jeu ont-ils vraiment une part dans le problème ? Et que dit Apple à propos de la cause ?

0 votes

Cela a fonctionné pour moi, ainsi que la suppression de la ligne vide avant mon instruction d'impression.

3 votes

Ug, quelle façon merdique de devoir contourner un problème d'IDE.

52voto

dbv Points 577

Le processus principal de Buggy Simulator fonctionne toujours même après la fermeture de Xcode. Voici donc les étapes :

  1. Quittez Xcode ;
  2. Tuer com.apple.CoreSimulator.CoreSimulatorService dans le moniteur d'activité ;
  3. Lancez Xcode et exécutez votre Playground.

1 votes

J'aime cette réponse plus que les autres parce qu'elle va plus au cœur du problème.

1 votes

Dois-je le faire à chaque fois ?

22voto

grain Points 189

D'après mon expérience, vous devriez :

  1. Empêchez le rafraîchissement de l'aire de jeu Swift, en maintenant : la flèche en bas à gauche de l'aire de jeu et en sélectionnant "Exécution manuelle".
  2. Quitter Xcode
  3. Redémarrer Xcode

Il fonctionne très bien.

4 votes

Mais le but de Playground n'est-il pas d'exécuter votre code tel qu'il a été écrit ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X