2016-06-14 8 views
1

Ich habe ein XCode-Projekt, das kompiliert und gut läuft, aber wenn ich ein Element der UI eines bestimmten XIB hinzufüge, stürzt XCode ab, wenn ich versuche zu speichern oder wenn XCode den Fokus verliert. Betrachtet man die Fehlerdaten des Absturzes, so scheint es ein Assertionsfehler in Bezug auf einen NSTableHeader zu sein, aber ich verstehe nicht, wohin ich von dort aus gehen soll. Ich verwende kein Auto-Layout und dies ist eine OSX-App.XCode 7.3 stürzt ab, wenn XIB bearbeitet wird

Process:    Xcode [2505] 
Path:     /Applications/Xcode.app/Contents/MacOS/Xcode 
Identifier:   com.apple.dt.Xcode 
Version:    7.3.1 (10188.1) 
Build Info:   IDEFrameworks-10188001000000000~3 
App Item ID:   497799835 
App External ID:  817226719 
Code Type:    X86-64 (Native) 
Parent Process:  ??? [1] 
Responsible:   Xcode [2505] 
User ID:    501 

Date/Time:    2016-06-14 11:30:04.824 -0700 
OS Version:   Mac OS X 10.11.5 (15F34) 
Report Version:  11 
Anonymous UUID:  20048F22-546D-D351-6F8C-D73FF28F4650 


Time Awake Since Boot: 67000 seconds 

System Integrity Protection: enabled 

Crashed Thread:  0 Dispatch queue: com.apple.main-thread 

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

Application Specific Information: 
ProductBuildVersion: 7D1014 
ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/IDEInterfaceBuilder/IDEInterfaceBuilder-10117/InterfaceBuilderKit/Document/ObjectContainer/IBObjectContainer.m:513 
Details: Can't get the OID of an object not in the document: <NSTableHeaderView: 0x7fc5daeefd90> 
Object: <IBObjectContainer: 0x7fc5dae4eeb0> 
Method: -objectIDForObject: 
Thread: <NSThread: 0x7fc5d3e17e80>{number = 1, name = main} 
Hints: None 
Backtrace: 
    0 -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in IDEKit) 
    1 _DVTAssertionHandler (in DVTFoundation) 
    2 _DVTAssertionFailureHandler (in DVTFoundation) 
    3 -[IBObjectContainer objectIDForObject:] (in IDEInterfaceBuilderKit) 
    4 -[IBDocument objectIDForObject:] (in IDEInterfaceBuilderKit) 
    5 -[IBDocument documentArchiver:referenceIDForObject:referenceType:] (in IDEInterfaceBuilderKit) 
    6 -[IBDocumentArchiver referenceIDForObject:withReferenceType:] (in IDEInterfaceBuilderKit) 
    7 -[IBDocumentArchiver archiveObjectReference:referenceType:forKey:] (in IDEInterfaceBuilderKit) 
    8 -[IBDocumentArchiver archiveObjectReference:referenceType:forKey:defaultValue:] (in IDEInterfaceBuilderKit) 
    9 -[NSTableView(IBDocumentArchivingGenerator) archiveWithDocumentArchiver:] (in IDEInterfaceBuilderCocoaIntegration) 
10 __51-[IBDocumentArchiver archiveObject:forOptionalKey:]_block_invoke (in IDEInterfaceBuilderKit) 
11 -[IBDocumentArchiver recurseWithElementNamed:forObject:kind:invokingBlock:] (in IDEInterfaceBuilderKit) 
12 -[IBDocumentArchiver archiveObject:forOptionalKey:] (in IDEInterfaceBuilderKit) 
13 __59-[IBDocumentArchiver archiveArray:withName:forOptionalKey:]_block_invoke (in IDEInterfaceBuilderKit) 
14 -[IBDocumentArchiver recurseWithElementNamed:forObject:kind:invokingBlock:] (in IDEInterfaceBuilderKit) 
15 -[IBDocumentArchiver archiveArray:withName:forOptionalKey:] (in IDEInterfaceBuilderKit) 
16 -[IBDocumentArchiver archiveArray:withName:forOptionalKey:defaultValue:] (in IDEInterfaceBuilderKit) 
17 -[NSView(IBViewIntegration) ibArchiveSubviews:] (in IDEInterfaceBuilderKit) 
18 -[NSView(IBDocumentArchivingGenerator) archiveWithDocumentArchiver:] (in IDEInterfaceBuilderKit) 
19 -[IBNSCustomView(IBDocumentArchivingGenerator) archiveWithDocumentArchiver:] (in IDEInterfaceBuilderCocoaIntegration) 
20 __51-[IBDocumentArchiver archiveObject:forOptionalKey:]_block_invoke (in IDEInterfaceBuilderKit) 
21 -[IBDocumentArchiver recurseWithElementNamed:forObject:kind:invokingBlock:] (in IDEInterfaceBuilderKit) 
22 -[IBDocumentArchiver archiveObject:forOptionalKey:] (in IDEInterfaceBuilderKit) 
23 __59-[IBDocumentArchiver archiveArray:withName:forOptionalKey:]_block_invoke (in IDEInterfaceBuilderKit) 
24 -[IBDocumentArchiver recurseWithElementNamed:forObject:kind:invokingBlock:] (in IDEInterfaceBuilderKit) 
25 -[IBDocumentArchiver archiveArray:withName:forOptionalKey:] (in IDEInterfaceBuilderKit) 
26 -[IBDocument archiveTopLevelObjects:] (in IDEInterfaceBuilderKit) 
27 -[IBDocument archiveAndVerifyArchivingOfTopLevelObjects:] (in IDEInterfaceBuilderKit) 
28 -[IBDocument archivePlatformIndependentDataWithDocumentArchiver:] (in IDEInterfaceBuilderKit) 
29 -[IBDocument archiveDocument:] (in IDEInterfaceBuilderKit) 
30 -[IBDocumentArchiver recurseWithElementNamed:forObject:kind:invokingBlock:] (in IDEInterfaceBuilderKit) 
31 -[IBDocumentArchiver archiveDocument:withType:compatibilityVersion:] (in IDEInterfaceBuilderKit) 
32 -[IBDocumentArchiver dataFromArchiveDocument:withType:compatibilityVersion:] (in IDEInterfaceBuilderKit) 
33 __46-[IBDocument fileWrapperOfType:options:error:]_block_invoke (in IDEInterfaceBuilderKit) 
34 -[IBDocument fileWrapperOfType:options:error:] (in IDEInterfaceBuilderKit) 
35 -[IBDocument fileWrapperOfType:error:] (in IDEInterfaceBuilderKit) 
36 -[NSDocument writeToURL:ofType:error:] (in AppKit) 
37 -[IBDocument writeToURL:ofType:error:] (in IDEInterfaceBuilderKit) 
38 -[NSDocument writeToURL:ofType:forSaveOperation:originalContentsURL:error:] (in AppKit) 
39 -[IBDocument writeToURL:ofType:forSaveOperation:originalContentsURL:error:] (in IDEInterfaceBuilderKit) 
40 -[NSDocument _writeSafelyToURL:ofType:forSaveOperation:forceTemporaryDirectory:error:] (in AppKit) 
41 -[NSDocument _writeSafelyToURL:ofType:forSaveOperation:error:] (in AppKit) 
42 -[NSDocument writeSafelyToURL:ofType:forSaveOperation:error:] (in AppKit) 
43 -[IDEEditorDocument writeSafelyToURL:ofType:forSaveOperation:error:] (in IDEKit) 
44 __66-[NSDocument saveToURL:ofType:forSaveOperation:completionHandler:]_block_invoke_22463 (in AppKit) 
45 __66-[NSDocument saveToURL:ofType:forSaveOperation:completionHandler:]_block_invoke2460 (in AppKit) 
46 __66-[NSDocument saveToURL:ofType:forSaveOperation:completionHandler:]_block_invoke_22313 (in AppKit) 
47 __50-[IDEEditorDocument continueFileAccessUsingBlock:]_block_invoke.74 (in IDEKit) 
48 -[NSDocument continueFileAccessUsingBlock:] (in AppKit) 
49 -[IDEEditorDocument continueFileAccessUsingBlock:] (in IDEKit) 
50 __101-[NSDocument _fileCoordinator:asynchronouslyCoordinateReadingContentsAndWritingItemAtURL:byAccessor:]_block_invoke_2 (in AppKit) 
51 __68-[IDEEditorDocument continueAsynchronousWorkOnMainThreadUsingBlock:]_block_invoke (in IDEKit) 
52 __62-[NSDocumentController(NSInternal) _onMainThreadInvokeWorker:]_block_invoke2079 (in AppKit) 
53 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ (in CoreFoundation) 
54 __CFRunLoopDoBlocks (in CoreFoundation) 
55 __CFRunLoopRun (in CoreFoundation) 
56 CFRunLoopRunSpecific (in CoreFoundation) 
57 RunCurrentEventLoopInMode (in HIToolbox) 
58 ReceiveNextEventCommon (in HIToolbox) 
59 _BlockUntilNextEventMatchingListInModeWithFilter (in HIToolbox) 
60 _DPSNextEvent (in AppKit) 
61 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] (in AppKit) 
62 -[DVTApplication nextEventMatchingMask:untilDate:inMode:dequeue:] (in DVTKit) 
63 -[NSApplication run] (in AppKit) 
64 NSApplicationMain (in AppKit) 
65 0x000000010c51a39b (in Xcode) 
66 start (in libdyld.dylib) 

abort() called 

Antwort

1

ich ein ähnliches Problem habe, und ich denke, es liegt daran, dass meine XIB Dateien ziemlich alt sind (von XCode 4.6 oder älter). Seither hat sich das XML-Schema stark verändert. (Siehe this article.) Ich konnte die Änderung an meinem XIB vornehmen, indem ich XCode 6 aus Time Machine fang und neben XCode 7 in Anwendungen kopierte. Ich habe nicht versucht, irgendwelche Projekte mit XCode 6 zu öffnen, aber ich habe das XIB direkt geöffnet und die Änderung vorgenommen, die ich außerhalb des Projekts vornehmen musste.

Was ist seltsam ist, dass ich in der Lage war, eine dieser XIB-Dateien nur vor ein paar Wochen zu ändern. XCode (7) hat dann die XML-Datei mit dem neuen Schema komplett neu geschrieben, und es hat nun kein Problem, diese XIB zu bearbeiten. Auch XCode 6 stürzt jetzt ab, wenn ich versuche, ein XIB auf ein neueres Schema zu aktualisieren. (Ich denke, ich kann nur meine XIB bearbeiten, da XCode 6, im Gegensatz zu XCode 7, das alte Schema immer noch bearbeiten kann, ohne es zu aktualisieren.)

Ich denke, Apple hat möglicherweise in den letzten Wochen ein Software-Update eingeführt, das extern ist zu XCode aber dennoch das XML-Upgrade gebrochen. Oder etwas anderes, was ich getan habe, aber ich kann nicht denken, was es sein könnte.

FWIW: Ich bin am 10.11.5, also zumindest der Interface Builder Teil von XCode 6 funktioniert immer noch auf dem neuesten Betriebssystem.

EDIT: Ich konnte die XML aktualisieren und somit in der Lage sein XIB in XCode bearbeiten 7.3.1 eine etwas aufwendigere Lösung mit:

  1. Verwendung Fusion oder Parallels eine virtuelle 10.8 zu erstellen.
  2. Installieren Sie XCode 5.1.1 in der virtuellen. (Sie finden Download-Links here.)
  3. Öffnen Sie die XIB in XCode 5.1.1 und aktualisieren Sie sie. Sie können es nun öffnen und in XCode 7 speichern.
+0

Danke, Ihre Antwort ist sinnvoll. Mein Projekt ist mehrere Jahre alt und ich vermute, dass Sie bezüglich der XML-Schemaänderungen korrekt sind. Glücklicherweise konnte ich mein Problem bis auf eine NSTableView verfolgen, die ich löschen konnte und alles scheint jetzt glücklich zu sein. – ThinkCL

Verwandte Themen