異なるストーリーボードからビューをコピー/貼り付けすると、Xcode 11がクラッシュする


18

Xcode 11がCatalinaで実行されているときに問題が発生しました(Moaveでも同じ問題が発生していました)。あるストーリーボードから別のXcodeにビューまたはViewControllerをコピー/貼り付けようとすると、次の例外でクラッシュします。

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

他の誰かに起こっていますか?これはストーリーボードでサポートされていないものですか?


これは間違いなくXcodeのバグであるため、できることはAppleのフィードバックアシスタント
Alladinian

1
ここでも同じですが、ストーリーボード間でviewControllerをコピー/貼り付けすると、Xcode 11(Mojave)がクラッシュすることを確認できます。
Szilveszter Zsigmond

ここでも同じですが、コピーして貼り付けるとXcodeがクラッシュし続けます。 cmd + D必要なのは、同じストーリーボード内の単一のviewControllerを複製する場合ですが、必要なのは、別のストーリーボードにコピーして貼り付けることです。
fs_tigre

更新-インストールしたXcodeの他のバージョンを削除した後、正常に機能し始めました。多分他のバージョンが問題を引き起こしていたのかもしれませんが、私にはわかりませんが、問題が発生した後に行ったのはこれだけです。今では、Xcode 11がクラッシュすることなく、異なるストーリーボード間でビューコントローラーをコピーして貼り付けることができます。
fs_tigre

回答:


11

私にとっての問題は、アプリをバックグラウンドで実行していたためです。エミュレーターを閉じた後、(別のストーリーボードファイルでも)コピー/カットアンドペーストできました。


これは私のために働いた!
Bijoy Thangaraj

これは完全に私のために働きました!ありがとうございました!!
josher932

9

Xcode-> Preferences-Locations「Derived Data」の下にある小さな矢印をクリックして、そのフォルダーを削除します。これを実行した後、ストーリーボード間でカットアンドペーストできました。


どうもありがとう、これは別のプロジェクトのストーリーボードからいくつかのシーンを処理した後の最適なソリューションです。
ミゲルA.

これがXcode 11.3で私のために機能した唯一のものです
binsnoel

完璧な動作...!
Aqib Zareen

8

ここで同じ問題。新しいXcode 11のバグだと思います。

迅速な回避策が見つかりました。Xcodeをクラッシュさせるビューコントローラーをコピーして貼り付ける代わりに、cmd + Dを使用してビューコントローラーを複製できます。しかし、これは同じストーリーボード内にある場合にのみ役立ちます


1
100万人に感謝
ペトルフィアラ

4

[View Controller]、[Edit]> [copy]の順に選択します

別のストーリーボードで、[編集]> [貼り付け]


これに引き続き、Xcodeバージョン11.1(11A1027)がクラッシュします
Mohit G.

2

簡単なハックを見つけ、プロジェクトナビゲーターに移動し、.storyboardファイルを右クリックして、[Open as Source code]を選択します。

ストーリーボードをxml形式で取得し、コントローラーのクラスを検索してコピーし、他のストーリーボードにコピーしたのと同じ方法で貼り付けます。ビューコントローラのコード全体を取得してください。

            <!--Detail View Controller-->
    <scene sceneID="n6l-mp-H1E"> .... </scene>

完璧なソリューション。私のために働いた
Akash Bhardwaj

0

2つの可能なケース:

  • あるプロジェクトから別のプロジェクトにコピーして貼り付ける必要があります。
  • または同じプロジェクト内ですが、ストーリーボードは異なります。

バックグラウンドで実行されているエミュレーターを閉じてからコピーして貼り付けるか、ストーリーボード(XML形式)からコピーして貼り付けることで修正できます。


0

シーンを選択する代わりに、ビューコントローラーを選択してコピーを実行し、新しいストーリーボードに貼り付けて機能することがわかりました。

ここに画像の説明を入力してください


0

ストーリーボード全体を貼り付けるときにカーネルに問題があるようですが、これはシミュレータアプリが開いているときにのみ発生します。シミュレーターアプリを閉じて貼り付けてみてください


0

コピー/貼り付けの代わりにドラッグアンドドロップが機能しました。幸せなコーディング!

ドラッグアンドドロップ


0

私はこの問題に何度も直面していますが、Xcodeの新しいバージョンが原因のようです。

ここに私のために働く解決策があります。

派生データ削除し、XCodeを再起動します。

クリーン&ビルドプロジェクトをします。

次のタスクでXCodeがビジー状態にならないようにしてください。

  • 建築プロジェクト

  • インデックス作成(完了まで待機)

  • 実行中のプロジェクト

  • ストーリーボードのオープニング

これで、1つのストーリーボードから別のストーリーボードに1つのビューコントローラーをコピーすることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.