打开项目文件时, Xcode 崩溃

62

当我打开项目文件时,Xcode总是崩溃。我已经能够正常打开它几个星期了。不确定如何诊断问题。它只对特定的项目崩溃。

Process:         Xcode [1293]
Path:            /Developer/Applications/Xcode.app/Contents/MacOS/Xcode
Identifier:      com.apple.Xcode
Version:         3.2.5 (1760)
Build Info:      DevToolsIDE-17600000~5
Code Type:       X86-64 (Native)
Parent Process:  launchd [189]

Date/Time:       2010-12-15 16:05:24.659 -0700
OS Version:      Mac OS X 10.6.5 (10H574)
Report Version:  6

Interval Since Last Report:          201 sec
Crashes Since Last Report:           4
Per-App Interval Since Last Report:  80 sec
Per-App Crashes Since Last Report:   4
Anonymous UUID:                      2B7F7CFC-45EA-450C-8467-6BF1E356B6F6

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000025940
Crashed Thread:  10  Dispatch queue: com.apple.Xcode.index-access

Application Specific Information:
objc[1293]: garbage collection is ON
22个回答

143

通常,崩溃是项目文件已损坏的迹象。以下是可能修复它的一些方法。

1. 修复已损坏的*.pbxproj文件

由合并冲突引起

如果您正在使用版本控制,则可能是由尚未解决的合并冲突引起的。

  1. 使用Finder打开包含项目的目录。
  2. 右键单击项目文件YOUR_PROJECT_NAME.xcodeproj,选择您喜欢的文本编辑工具(如Sublime Text)打开。
  3. 查找合并冲突,通常用一系列=========标记。
  4. 手动解决合并冲突或删除其中一个侧面的更改。

由不可读的XML引起

如果失败了,请进入文件并快速滚动以查看是否有任何异常-通常应为可读的XML。 您甚至可以尝试针对其使用XML验证器,以查看是否发现了任何问题。

2. 重置您的工作空间

  1. 使用Finder打开包含您的项目的目录。
  2. 右键单击项目文件MyProject.xcodeproj并选择Show Package Contents
  3. 删除xcuserdata文件夹,其中应包含一个以您的用户名命名的文件夹。
  4. 重复步骤2和3,为您的工作区文件MyProject.workspace执行相同操作。

KennyWinkerPaul R在下面的答案中详细说明。

3. 重新创建Xcode项目

请注意,对于大型项目而言,此方法应该是您的最后选择,因为它非常繁琐。

最后,您可以简单地重新创建它。虽然这可能看起来很繁琐,但基本上您只需创建一个新项目,然后将“Classes”文件夹下的所有内容拖入Xcode中即可开始使用它(不要忘记还需要添加所需的框架)。

8
尽量避免重新创建项目文件(project.pbxproj),可尝试以下步骤:完全退出Xcode,删除构建文件夹,删除项目.xcodeproj目录中的username.*文件,再重新启动Xcode。注意不要改变原意。 - Paul R
9
删除~/Library/Developer/Xcode/DerivedData解决了我的问题。 - drootang
6
删除 xcuserdata 对我有用,但只有当我删除了 MyApp.xcodeproj/xcuserdataMyApp.xcodeproj/project.xcworkspace/xcuserdata 才行。所以不要忘记深入到 MyApp.xcodeproj/project.xcworkspace/ 并删除那个文件夹 :) - jeff-h
是的,我的xcworkspace目录下有一个xcuserdata目录,删除它解决了这个问题。 - mike james
已解决删除xcworkspace文件夹的xcuserdata。非常感谢! - Dimple
显示剩余4条评论

102

我想进一步阐述@Paul R的评论。

我曾经遇到这样一个情况,每次打开项目文件时Xcode都会崩溃。似乎与正在打开的IB窗口有关。最终,删除MyProject.xcodeproj/project.xcworkspace/xcuserdata/的内容解决了这个问题。这通过重置工作区(打开的文件、窗口缩放等)来实现。

希望这有所帮助。


4
惊讶于“TWFM(这对我有用)”不在白话中。无论如何,新手可能会想知道,通过在Finder中进行控制单击并选择“显示包内容”,可以公开对象的内容,例如MyProject.xcodeproj。 - Jack Bellis

45

我是怎么解决问题的?

对于我来说,唯一可行的解决方案就是删除挂起项目的派生数据文件夹,即上面目录中的派生数据文件夹:~/Library/Developer/Xcode/DerivedData/。希望能帮到某些人。

什么没用?

如其他地方所述,删除MyProject.xcodeproj/project.xcworkspace/xcuserdata/MyProject.xcodeproj/xcuserdata/对我没有用。


1
这两种解决方案对我都没用…还是一直崩溃。 - Gaurav Pandey
这对我起作用了,但是项目方案必须被编辑以便我的模拟器和物理设备能够在运行设备中显示出来。之前设置为Myapp.app的可执行文件被设置为none。 - Casey Murray

18

只想为 @Kenny Winker 的答案添加一些额外内容...

要删除你的 Xcode 用户数据,请按以下步骤进行:

  • 找到你的 Xcode 项目文件,例如:MyProject.xcodeprojMyProject.xcworkspace
  • 右键点击它并选择 Show Package Contents
  • 最后,只需删除文件夹 xcuserdata 中的所有内容即可
  • 完成!:)

希望这可以为不知道如何找到他们的项目用户数据的人提供更多上下文。


6

我曾遇到过和Xcode 8.1类似的问题。原因可能是项目文件中包含合并冲突数据。你可以通过在TextEdit中打开Xcode项目文件来删除它们。

然而,在我的情况下没有出现合并冲突。简单地删除DerivedData的内容对我有效。

步骤:

  1. 打开Finder窗口,然后选择前往标签 -> 前往文件夹… (或按 Cmd + shift + G)

Screenshot 1

  1. 输入~/Library并按前往。这将打开默认情况下隐藏的库文件夹。

Screenshot 2

  1. 进入到Developer -> Xcode -> DerivedData文件夹,删除此文件夹中的所有内容。 DerivedData相当于缓存,即每次构建/运行应用程序时都会创建。

Screenshot 3

  1. 现在打开项目。它应该可以正常工作。

3

以下是我使用的 @Sean D 答案的翻译。

在看到这里的建议后,我通过删除 Xcode 的偏好设置来解决了这个问题。最可靠的方法是在退出 Xcode 后执行以下终端命令:

defaults delete com.apple.dt.Xcode

ETA: 其他建议涉及更改或删除某些个人偏好设置,但在尝试了其中的一些之后,都没有解决我的问题。似乎6和7b3之间存在多个偏好设置不兼容的问题,因此完全清除偏好设置应该能够解决所有问题。


3

我尝试了帖子中的所有解决方案,但都没有帮助到我。不知道原因。

与其通过 Xcode 打开项目,我用终端通过 open Project.xcworkspace 打开项目,神奇地就可以正常运行了。


这对我也起作用了。我不理解它。 - intrepid_em

2
在您的项目文件夹中找到projectName.xcodeproj或者projectName.xcworkspace,如果您已经安装了pods,请右键单击它并点击(显示包内容),最后删除xcuserdata文件夹中的所有内容。 启动您的项目,它将正常工作。

2

我也遇到了同样的问题,似乎是版本问题,我无法解决,所以我回退到之前的版本,然后它就可以工作了。感觉XCode 4还有一些bug需要修复。


2
我也遇到了同样的问题,我做了以下所有事情,但对我没有用!
删除派生数据:
~/Library/Developer/Xcode/DerivedData/
删除xcuserdata文件夹中的所有内容: MyProject.xcodeproj/project.xcworkspace/xcuserdata/ 和 MyProject.xcodeproj/xcuserdata/
对我有用的是什么?
在我的情况下,我从下面的链接重新安装了附加组件(额外下载),然后解决了这个问题。 https://developer.apple.com/xcode/resources/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接