3

当我尝试打开我的项目时,我收到“内部错误”消息。您对正在发生的事情有任何想法吗?

Xcode 遇到内部逻辑错误。选择“继续”以在不一致的状态下继续运行 Xcode。选择“Crash”以停止 Xcode 并使用 Crash Reporter 提交错误。选择“崩溃”将导致所有未保存的数据丢失。

细节如下所示:

ASSERTION FAILURE in /SourceCache/IDEFoundation/IDEFoundation-943/Framework/Classes/Model/Execution/RunContext/IDEBuildSchemeAction.m:912
Details:  (_buildableReference) should not be nil.
Object:   <IDEBuildActionEntry: 0x403120140>
Method:   -dvt_awakeFromXMLUnarchiver:
Thread:   <NSThread: 0x40010a220>{name = (null), num = 1}
Hints:   None
Backtrace:
  0  0x000000010b6a8366 -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:messageFormat:arguments:] (in IDEKit)
  1  0x000000010ad201a4 _DVTAssertionFailureHandler (in DVTFoundation)
  2  0x000000010b246e89 -[IDEBuildActionEntry dvt_awakeFromXMLUnarchiver:] (in IDEFoundation)
  3  0x000000010ad2585a -[DVTXMLUnarchiver decodeElementNodeWithXMLTextReader:owner:container:parsingState:success:error:] (in DVTFoundation)
  4  0x000000010ace024a -[DVTXMLUnarchiver decodeNodeWithXMLTextReader:owner:container:parsingState:error:] (in DVTFoundation)
  5  0x000000010ad25551 -[DVTXMLUnarchiver decodeElementNodeWithXMLTextReader:owner:container:parsingState:success:error:] (in DVTFoundation)
  6  0x000000010ace024a -[DVTXMLUnarchiver decodeNodeWithXMLTextReader:owner:container:parsingState:error:] (in DVTFoundation)
  7  0x000000010ad25551 -[DVTXMLUnarchiver decodeElementNodeWithXMLTextReader:owner:container:parsingState:success:error:] (in DVTFoundation)
  8  0x000000010ace024a -[DVTXMLUnarchiver decodeNodeWithXMLTextReader:owner:container:parsingState:error:] (in DVTFoundation)
  9  0x000000010ad25551 -[DVTXMLUnarchiver decodeElementNodeWithXMLTextReader:owner:container:parsingState:success:error:] (in DVTFoundation)
 10  0x000000010ace024a -[DVTXMLUnarchiver decodeNodeWithXMLTextReader:owner:container:parsingState:error:] (in DVTFoundation)
 11  0x000000010acdff6a -[DVTXMLUnarchiver _readAndReturnError:] (in DVTFoundation)
 12  0x000000010acdfc84 -[DVTXMLUnarchiver decodeWithRootObject:error:] (in DVTFoundation)
 13  0x000000010b245cc5 +[IDEScheme schemeFromXMLData:withRunContextManager:customDataStoreContainer:customDataSpecifier:isShown:orderHint:error:] (in IDEFoundation)
 14  0x000000010b24542e -[IDERunContextManager _updateMap:contextForCustomDataStore:specifier:] (in IDEFoundation)
 15  0x000000010b244b6f -[IDERunContextManager _customDataStoresDidUpdate] (in IDEFoundation)
 16  0x000000010ad2a9d0 -[NSObject(DVTPropertyLinking) dvt_addObserverWithName:toKeyPath:ofObject:block:] (in DVTFoundation)
 17  0x000000010b244554 -[IDERunContextManager initWithWorkspace:] (in IDEFoundation)
 18  0x000000010b2441e5 -[IDEWorkspace _setupRunContextManager] (in IDEFoundation)
 19  0x000000010b29e02e __81-[IDEWorkspace _finishLoadingAsynchronously:shouldUpgradeFromSimpleFilesFocused:]_block_invoke_0 (in IDEFoundation)
 20  0x00007fff8d9a3b05 -[NSBlockOperation main] (in Foundation)
 21  0x00007fff8d96a6d8 -[__NSOperationInternal start] (in Foundation)
 22  0x00007fff8d97d936 ____NSOQSchedule_block_invoke_2 (in Foundation)
 23  0x00007fff81bde8ba _dispatch_call_block_and_release (in libdispatch.dylib)
 24  0x00007fff81be072a _dispatch_main_queue_callback_4CF (in libdispatch.dylib)
 25  0x00007fff81f3506c __CFRunLoopRun (in CoreFoundation)
 26  0x00007fff81f34676 CFRunLoopRunSpecific (in CoreFoundation)
 27  0x00007fff87a8231f RunCurrentEventLoopInMode (in HIToolbox)
 28  0x00007fff87a895c9 ReceiveNextEventCommon (in HIToolbox)
 29  0x00007fff87a89456 BlockUntilNextEventMatchingListInMode (in HIToolbox)
 30  0x00007fff86c93f5d _DPSNextEvent (in AppKit)
 31  0x00007fff86c93861 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] (in AppKit)
 32  0x00007fff86c9019d -[NSApplication run] (in AppKit)
 33  0x00007fff86f0eb88 NSApplicationMain (in AppKit)
 34  0x000000010acb3eec (in Xcode)
 35  0x0000000000000002
4

2 回答 2

4

你真的不应该在像 Xcode 这样的产品中看到“内部错误”。您看到的不是一个错误,就是没有人认为会发生的情况。根本原因可能是某种格式错误的项目文件:我们可以从堆栈跟踪中看到 Xcode 正在读取 XML 文件,并且您说它发生在 Xcode 打开您的项目时。

我将首先创建一个新的项目文件,然后将所有文件添加到您的项目中。这可能会让人头疼,但它通常是从与项目文件相关的问题中恢复的最有效方法。

如果这听起来工作量太大,并且您认为自己知道问题所在,您可以尝试手动编辑现有项目文件。按住 Control 键单击项目文件并从上下文菜单中选择“显示包内容”以显示项目文件中的文件,这实际上是一个文件包。然后在您喜欢的文本编辑器中打开“project.pbxproj”文件以查看定义项目的 XML。不难看到文件的结构,因此您可能会发现问题。

例如,昨晚我不小心将 Xcode 本身添加为我项目的框架之一。这导致 Xcode 挂起,我不得不强制退出。更糟糕的是,Xcode 会尝试打开您上次退出时打开的项目,因此再次启动 Xcode 会导致再次挂起。(您可以通过在启动 Xcode 时按住 Shift 键来避免这种情况。)我使用 TextMate 打开项目文件,在链接框架部分找到对 Xcode.app 的引用,然后将其删除。手术很成功,患者完全康复。

于 2012-04-22T17:11:21.173 回答
0

这可能是您的项目文件或 Xcode 配置文件已损坏的情况。这些都是 XML 文件,这可以解释为什么您的堆栈跟踪指示 xml 解析问题。堆栈跟踪还指示(来自 IDE 前缀)当 Xcode 尝试将自身组织为集成开发环境时发生错误。

这里有几个选项:

  1. 尝试在 Xcode 中打开或创建另一个项目。如果您能够做到这一点,那么再次尝试在 Xcode 中打开您现有的项目。
  2. 尝试在另一台机器上或当前机器上的另一个版本的 Xcode 上的另一个 Xcode 安装中打开您的项目。如果项目在另一个安装中打开,则重新安装您的 Xcode。
  3. 创建一个新项目。一次复制几个文件中的所有 h、m 和资源文件。重新设置项目。
  4. 您总是可以通过在文本编辑器中打开项目文件来尝试找到一些格式错误的 xml。(没什么好玩的)
于 2012-04-27T20:36:19.687 回答