Xcode 11 se bloquea al copiar / pegar vistas de diferentes guiones gráficos

18

Tengo un problema con Xcode 11 ejecutándose en Catalina (tenía el mismo problema con Moave). Cuando intento copiar / pegar una vista o un ViewController de un guión gráfico a otro, Xcode falla con esta excepción:

...
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
...

¿Le está pasando a alguien más? ¿Es esto algo que no es compatible con el guión gráfico?

LorenzOliveto
fuente
Este es definitivamente un error de Xcode, por lo que lo mejor que puede hacer es informarlo en el Asistente de comentarios de Apple
Alladinian
1
Lo mismo aquí, puedo confirmar que copiar / pegar viewController de un guión gráfico a otro causa el bloqueo de Xcode 11 (Mojave).
Szilveszter Zsigmond
Lo mismo aquí, Xcode sigue fallando al copiar y pegar. cmd + Dfunciona si lo que quieres es duplicar un solo viewController dentro del mismo Storyboard pero lo que necesito es copiar y pegar en un Storyboard diferente.
fs_tigre
ACTUALIZACIÓN: ahora comenzó a funcionar bien después de eliminar otras versiones de Xcode que había instalado. Tal vez las otras versiones estaban causando el problema, no lo sé, pero es lo único que hice después de tener problemas, ahora puedo copiar y pegar View Controllers entre diferentes Storyboards sin que Xcode 11 falle.
fs_tigre

Respuestas:

11

El problema para mí fue porque tenía la aplicación ejecutándose en segundo plano. Después de cerrar el emulador pude copiar / cortar y pegar (incluso en diferentes archivos de guión gráfico).

Mateus Cerqueira
fuente
¡Esto funcionó para mí!
Bijoy Thangaraj
¡Esto funcionó totalmente para mí! ¡¡Gracias!!
josher932
9

Xcode-> Preferencias-Ubicaciones Haga clic en la pequeña flecha debajo de "Datos derivados" y elimine esa carpeta. Después de hacer esto, pude cortar y pegar entre guiones gráficos.

jspicer
fuente
Muchas gracias, esta es una solución adecuada después de hacer frente a algunas escenas del guión gráfico de otro proyecto.
Miguel A.
esto es lo único que me funcionó en Xcode 11.3
binsnoel
gran trabajo perfecto ...!
Aqib Zareen
8

Mismo problema aquí. Creo que es un error con el nuevo Xcode 11.

Encontré una solución rápida. En lugar de copiar y pegar controladores de vista, lo que hará que Xcode se bloquee, puede usar cmd + D para duplicar los controladores de vista. Pero esto solo será útil si está en el mismo guión gráfico

Antonio
fuente
1
Un millón de gracias
Petr Fiala
4

Seleccione Ver controlador, Editar> copiar

En otro guión gráfico, Editar> pegar

tdt kien
fuente
Después de esto todavía se bloquea la versión 11.1 de Xcode (11A1027)
Mohit G.
2

Encontré un truco rápido, vaya al navegador de su proyecto, luego haga clic derecho en su archivo .storyboard y elija abrir como código fuente.

obtendrá su guión gráfico en formato xml, buscará y copiará la clase del controlador y pegará de la misma manera que lo copió en el otro guión gráfico. asegúrese de obtener el código completo del controlador de vista.

            <!--Detail View Controller-->
    <scene sceneID="n6l-mp-H1E"> .... </scene>
NiTrOs
fuente
Solución perfecta. Trabajó para mí
Akash Bhardwaj
0

Dos posibles casos:

  • o bien debe copiar y pegar de un proyecto a otro;
  • o dentro del mismo proyecto, pero diferente o el mismo guión gráfico.

Puede solucionarlo cerrando el emulador que se ejecuta en segundo plano y luego copie y pegue o copie y pegue desde su guión gráfico (formato XML).

Milind Kumar
fuente
0

He descubierto que en lugar de seleccionar la escena, seleccionar el controlador de vista y realizar una copia y pegar en el nuevo guión gráfico funcionó.

ingrese la descripción de la imagen aquí

yilin
fuente
0

Parece que el núcleo tiene problemas al pegar todo el guión gráfico, pero esto solo sucede cuando las aplicaciones del simulador están abiertas. Cierre la aplicación del simulador e intente pegarla, funciona perfectamente

Saran Jasty
fuente
0

Arrastrar y soltar funcionó en lugar de copiar / pegar para mí. ¡Feliz codificación!

arrastrar y soltar

Asil ARSLAN
fuente
0

Me enfrento a este problema mucho tiempo, parece que se debe a la nueva versión de Xcode.

Aquí está la solución que me funciona.

Elimine los datos derivados y reinicie el XCode.

Limpia y construye el proyecto.

Asegúrese de que XCode no esté ocupado en las siguientes tareas:

  • Proyecto de construcción

  • Indexación (espere hasta terminar)

  • Proyecto en ejecución

  • Apertura del guión gráfico

Ahora puede intentar copiar un controlador de vista de un guión gráfico a otro, puede ser posible.

Sr. Javed Multani
fuente