Xcode 11 ulega awarii podczas kopiowania / wklejania widoków z różnych scenorysów

18

Mam problem z Xcode 11 działającym na Catalinie (miał taki sam problem z Moave). Kiedy próbuję skopiować / wkleić widok lub ViewController z jednej scenorysu do innej Xcode ulega awarii z tym wyjątkiem:

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

Czy dzieje się to z kimś innym? Czy to coś nie jest obsługiwane przez scenorys?

LorenzOliveto
źródło
Jest to zdecydowanie błąd Xcode, więc najlepiej możesz to zgłosić w Asystencie opinii Apple
Alladinian,
1
To samo tutaj, mogę potwierdzić kopiowanie / wklejanie viewController z jednej scenorysu do drugiej powoduje awarię Xcode 11 (Mojave).
Szilveszter Zsigmond
To samo tutaj, Xcode ciągle ulega awarii podczas kopiowania i wklejania. cmd + Ddziała, jeśli chcesz zduplikować pojedynczy kontroler widoku w tej samej serii ujęć, ale potrzebuję skopiować i wkleić do innej serii ujęć.
fs_tigre
AKTUALIZACJA - Teraz zaczęło działać dobrze po usunięciu innych wersji Xcode, które zainstalowałem. Być może inne wersje powodowały problem, nie wiem, ale to jedyna rzecz, którą zrobiłem po problemach, teraz mogę kopiować i wklejać kontrolery widoku między różnymi Storyboardami bez awarii Xcode 11.
fs_tigre

Odpowiedzi:

11

Problemem było to, że aplikacja działała w tle. Po zamknięciu emulatora byłem w stanie skopiować / wyciąć i wkleić (nawet w różnych plikach scenorysu).

Mateus Cerqueira
źródło
To zadziałało dla mnie!
Bijoy Thangaraj
To całkowicie zadziałało dla mnie! Dziękuję Ci!!
josher932
9

Xcode-> Preferencje-Lokalizacje Kliknij małą strzałkę pod „Pochodnymi danymi” i usuń ten folder. Po tym mogłem wycinać i wklejać między scenorysami.

jspicer
źródło
Dzięki bardzo, To jest odpowiednie rozwiązanie po skopiowaniu niektórych scen z scenariusza innego projektu.
Miguel A.,
to jedyna rzecz, która działała dla mnie w Xcode 11.3
binsnoel
świetnie działa idealnie ...!
Aqib Zareen
8

Ten sam problem tutaj. Myślę, że to błąd w nowym Xcode 11.

Znaleziono szybkie obejście. Zamiast kopiować i wklejać kontrolery widoku, które spowodują awarię Xcode, możesz użyć cmd + D, aby powielić kontrolery widoku. Ale będzie to przydatne tylko wtedy, gdy w tej samej serii ujęć

Antonio
źródło
1
Dzięki milion
Petr Fiala
4

Wybierz View Controller, Edit> copy

Na innej serii ujęć wybierz Edycja> wklej

tdt kien
źródło
Po tym nadal występuje awaria Xcode w wersji 11.1 (11A1027)
Mohit G.
2

znalazłem szybki hack, przejdź do nawigatora projektu, a następnie kliknij prawym przyciskiem myszy plik .storyboard i wybierz otwórz jako kod źródłowy.

otrzymasz storyboard w formacie xml, przeszukasz i skopiujesz klasę kontrolera, i wkleisz w ten sam sposób, w jaki skopiowałeś go w innym scenariuszu. upewnij się, że otrzymałeś cały kod kontrolera widoku.

            <!--Detail View Controller-->
    <scene sceneID="n6l-mp-H1E"> .... </scene>
NiTrOs
źródło
Idealne rozwiązanie. Pracował dla mnie
Akash Bhardwaj
0

Dwa możliwe przypadki:

  • albo musisz skopiować i wkleić z jednego projektu do drugiego;
  • lub w ramach tego samego projektu, ale innej lub tej samej scenorysu.

Możesz to naprawić, zamykając emulator działający w tle, a następnie kopiując i wklejając lub kopiując i wklejając ze swojego scenorysu (format XML).

Milind Kumar
źródło
0

Przekonałem się, że zamiast wybierać scenę, wybrałem kontroler widoku i wykonałem kopiowanie i wklejanie do nowej scenorysu.

wprowadź opis zdjęcia tutaj

yilin
źródło
0

Wygląda na to, że jądro ma problemy z wklejeniem całej scenorysu, ale dzieje się tak tylko wtedy, gdy aplikacje symulatora są otwarte. Zamknij aplikację symulatora i spróbuj ją wkleić, działa idealnie

Saran Jasty
źródło
0

Przeciągnij i upuść działa zamiast kopiowania / wklejania dla mnie. Miłego kodowania!

przeciągnij i upuść

Asil ARSLAN
źródło
0

Wiele razy mam do czynienia z tym problemem, wydaje się, że wynika to z nowej wersji Xcode.

Oto rozwiązanie, które działa dla mnie.

Usuń dane pochodne i zrestartuj XCode.

Oczyść i zbuduj projekt.

Upewnij się, że XCode nie powinien być zajęty w następujących zadaniach:

  • Projekt budowlany

  • Indeksowanie (poczekaj do końca)

  • Uruchamianie projektu

  • Otwarcie scenorysu

Teraz możesz spróbować skopiować jeden kontroler widoku z jednej scenorysu do drugiej, może to być możliwe.

Mr.Javed Multani
źródło