Xcode 11 plante lorsque vous copiez / collez des vues de différents storyboards

18

J'ai un problème avec Xcode 11 fonctionnant sur Catalina (il a eu le même problème avec Moave). Lorsque j'essaie de copier / coller une vue ou un ViewController d'un storyboard vers un autre Xcode se bloque avec cette exception:

...
Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Application Specific Information:
Sending paste: to IBStructureAreaDockView from <NSMenuItem: 0x7fe24030ddd0 Paste>
ProductBuildVersion: 11A1027
ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/IDEInterfaceBuilder/IDEInterfaceBuilder-15400/InterfaceBuilderKit/WidgetIntegration/View/IBViewIntegration.m:2451
Details:  There should only be 1 parent of all the constraint items extracted from the pasteboard: {(
)}
Object:   <IBUIView: 0x7fe23db1c600>
Method:   -ibDidExtractObjects:fromPasteboard:intoDocument:context:
Thread:   <NSThread: 0x7fe23ac17e80>{number = 1, name = main}
Hints:   
  0: Sending paste: to IBStructureAreaDockView from <NSMenuItem: 0x7fe24030ddd0 Paste>
Backtrace:
  0   -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in IDEKit)
  1   _DVTAssertionHandler (in DVTFoundation)
  2   _DVTAssertionFailureHandler (in DVTFoundation)
  3   -[NSView(IBViewIntegration) ibDidExtractObjects:fromPasteboard:intoDocument:context:] (in IDEInterfaceBuilderKit)
  4   -[IBUIView(IBUIViewIntegration) ibDidExtractObjects:fromPasteboard:intoDocument:context:] (in IDEInterfaceBuilderCocoaTouchIntegration)
  5   -[IBDocument ibDidExtractObjects:fromPasteboard:context:] (in IDEInterfaceBuilderKit)
  6   -[IBDocument insertObjectsFromPasteboard:ofType:asChildrenOfObject:atIndex:context:finishExtractingObjectsBlock:] (in IDEInterfaceBuilderKit)
  7   -[IBDocument insertOrMoveChildrenFromPasteboard:ofType:asChildrenOfObject:atIndex:context:finishExtractingObjectsBlock:] (in IDEInterfaceBuilderKit)
  8   -[IBDocument addOrMoveChildrenFromPasteboard:ofType:toObject:context:finishExtractingObjectsBlock:] (in IDEInterfaceBuilderKit)
  9   -[IBStoryboardDocument addOrMoveChildrenFromPasteboard:ofType:toSceneGroup:context:] (in IDEInterfaceBuilderKit)
 10   -[IBSceneDockViewController performDockPasteWithPasteboard:context:] (in IDEInterfaceBuilderKit)
 11   -[IBSceneDockViewController dockViewPerformPaste:] (in IDEInterfaceBuilderKit)
 12   -[IBStructureAreaDockView paste:] (in IDEInterfaceBuilderKit)
 13   -[NSApplication(NSResponder) sendAction:to:from:] (in AppKit)
 14   __37-[DVTApplication sendAction:to:from:]_block_invoke.86 (in DVTKit)
 15   DVTInvokeWithFailureHint (in DVTFoundation)
 16   -[DVTApplication sendAction:to:from:] (in DVTKit)
 17   -[NSMenuItem _corePerformAction] (in AppKit)
 18   -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] (in AppKit)
 19   -[NSMenu performKeyEquivalent:] (in AppKit)
 20   routeKeyEquivalent (in AppKit)
 21   -[NSApplication(NSEvent) sendEvent:] (in AppKit)
 22   -[IDEApplication sendEvent:] (in IDEKit)
 23   -[NSApplication run] (in AppKit)
 24   NSApplicationMain (in AppKit)
 25   main (in Xcode)
 26   start (in libdyld.dylib)

Performing @selector(paste:) from sender NSMenuItem 0x7fe24030ddd0
abort() called

Application Specific Signatures:
[parentsOfItemsInConstraints count] == 1
...

Cela arrive-t-il à quelqu'un d'autre? Est-ce quelque chose qui n'est pas supporté par le storyboard?

LorenzOliveto
la source
Il s'agit certainement d'un bogue Xcode, donc le mieux que vous puissiez faire est de le signaler sur le Feedback Assistant d'Apple
Alladinian
1
De même ici, je peux confirmer que copier / coller viewController d'un storyboard à un autre provoque le crash de Xcode 11 (Mojave).
Szilveszter Zsigmond
Même chose ici, Xcode continue de planter lors du copier-coller. cmd + Dfonctionne si ce que vous voulez est de dupliquer un seul viewController dans le même Storyboard mais ce dont j'ai besoin est de copier et coller sur un autre Storyboard.
fs_tigre
MISE À JOUR - Maintenant, il a juste commencé à bien fonctionner après la suppression d'autres versions de Xcode que j'avais installées. Peut-être que les autres versions étaient à l'origine du problème, je ne sais pas, mais c'est la seule chose que j'ai faite après avoir eu des problèmes, maintenant je peux copier et coller des contrôleurs de vue entre différents storyboards sans planter Xcode 11.
fs_tigre

Réponses:

11

Le problème pour moi était que j'avais l'application en arrière-plan. Après avoir fermé l'émulateur, j'ai pu copier / couper et coller (même dans différents fichiers de storyboard).

Mateus Cerqueira
la source
Cela a fonctionné pour moi!
Bijoy Thangaraj
Cela a totalement fonctionné pour moi! Je vous remercie!!
josher932
9

Xcode-> Préférences-Emplacements Cliquez sur la petite flèche sous "Données dérivées" et supprimez ce dossier. Après cela, je pouvais couper et coller entre les story-boards.

jspicer
la source
Merci beaucoup, Ceci est une solution adaptée après avoir copié certaines scènes du storyboard d'un autre projet.
Miguel A.
c'est la seule chose qui a fonctionné pour moi dans Xcode 11.3
binsnoel
grand travail parfait ...!
Aqib Zareen
8

Même problème ici. Je pense que c'est un bug avec le nouveau Xcode 11.

Trouvé une solution rapide. Au lieu de copier et coller des contrôleurs de vue qui entraîneront le blocage de Xcode, vous pouvez utiliser cmd + D pour dupliquer les contrôleurs de vue. Mais cela ne sera utile que si dans le même storyboard

Antonio
la source
1
Merci mille fois
Petr Fiala
4

Sélectionnez Afficher le contrôleur, Modifier> copier

Sur un autre storyboard, Edition> coller

tdt kien
la source
Suite à ce crash, la Xcode version 11.1 (11A1027)
Mohit G.
2

j'ai trouvé un hack rapide, allez dans votre navigateur de projet puis faites un clic droit sur votre fichier .storyboard et choisissez ouvrir comme code source.

vous obtiendrez votre storyboard au format xml, recherchez et copiez la classe du contrôleur, et collez la même manière que vous l'avez copiée dans l'autre storyboard. assurez-vous d'obtenir le code complet du contrôleur de vue.

            <!--Detail View Controller-->
    <scene sceneID="n6l-mp-H1E"> .... </scene>
NiTrOs
la source
Solution parfaite. A travaillé pour moi
Akash Bhardwaj
0

Deux cas possibles:

  • soit vous devez copier et coller d'un projet à un autre;
  • ou au sein d'un même projet, mais d'un storyboard différent ou identique.

Vous pouvez le corriger en fermant l'émulateur en arrière-plan, puis en copiant et collant ou en copiant et collant à partir de votre storyboard (format XML).

Milind Kumar
la source
0

J'ai trouvé qu'au lieu de sélectionner la scène, sélectionner le contrôleur de vue et effectuer un copier-coller sur un nouveau storyboard a fonctionné.

entrez la description de l'image ici

yilin
la source
0

Il semble que le noyau ait des problèmes lors du collage de tout le storyboard, mais cela ne se produit que lorsque les applications du simulateur sont ouvertes. Fermez l'application du simulateur et essayez de la coller, cela fonctionne parfaitement

Saran Jasty
la source
0

Le glisser-déposer a fonctionné au lieu de copier / coller pour moi. Bon codage!

glisser déposer

Asil ARSLAN
la source
0

Je suis confronté à ce problème beaucoup de temps, il semble que cela soit dû à la nouvelle version de Xcode.

Voici la solution qui me convient.

Supprimer les données dérivées et redémarrez le XCode.

Nettoyer et construire le projet.

Assurez-vous que XCode ne doit pas être occupé dans les tâches suivantes:

  • Projet de construction

  • Indexation (attendre la fin)

  • Projet en cours

  • Ouverture du storyboard

Maintenant, vous pouvez essayer de copier un contrôleur de vue d'un storyboard à un autre, cela peut être possible.

Mr.Javed Multani
la source