Xcode错误报告:Xcode意外退出

8

在升级至 Xcode 11.2.1 后,我无法打开我的项目。每次尝试打开时,Xcode 都会崩溃并出现以下错误。

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: 11B500
ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/IDEFrameworks/IDEFrameworks-15526.1/IDEKit/Workspace/IDEWorkspaceDocument.m:3429
Details:  selection failed. window:<IDEWorkspaceWindow: 0x7f95c63dfb70> currentlySelectedTabbedWindow:<IDEWorkspaceWindow: 0x7f95c7c51350>
Object:   <IDEWorkspaceDocument: 0x7f95c60d7580>
Method:   -_restoreSelectedTabsByIdentifierFromStateSaving:
Thread:   <NSThread: 0x7f95c0703790>{number = 1, name = main}

1
嗨,Andre,请查看我的答案并告诉我是否有帮助-https://dev59.com/Vbfna4cB1Zd3GeqPtXmb#58844362 - shbedev
2个回答

18
看起来 Xcode 无法恢复你上次打开的选项卡/文件,请参见Method: -_restoreSelectedTabsByIdentifierFromStateSaving:
包括已打开文件,当前目标等的最新UI状态存储在UserInterfaceState.xcusertate中。您可以在Xcode项目文件夹中找到该文件:
/<your_project_path>/<your_project_name>.xcodeproj/project.xcworkspace/xcuserdata/<username>.xcuserdatad/UserInterfaceState.xcuserstate

只需通过rm删除文件,Xcode即可正常工作。


我花了一整天的时间来寻找解决方案,终于解决了!我真是高兴极了。谢谢!我很好奇,你是如何熟悉Xcode内部机制的? - Dyldo42
1
从终端窗口输入以下内容是一种简单的方法,可以从所有项目中删除有问题的文件:find . -name "UserInterfaceState.xcuserstate" -exec rm {} ; - One In a Million Apps
谢谢!我尝试删除整个文件夹,但仍然无法正常工作。但是在按照这个方法后,它可以正常工作了。但是您能否解释一下为什么会出现这种情况,以及为什么只有特定的项目会出现这种情况,因为所有其他项目都可以正常工作? - JAY RAPARKA
1
当我删除了xcuserdata时,它并没有起作用,但是我进行了干净的项目克隆,并在我的有问题的项目中替换了ios/theftpatrol.xcworkspace,然后我就能打开这个项目了!你的步骤对我帮助很大,谢谢! - Chaki_Black
我很困惑。我的*.xcodeproj不是一个目录,但你却像它是一个路径一样列出来了... - Scorb
@ScottF,这是一个文件。你可以通过终端访问目录内容,或者右键单击文件图标>显示包内容,在Finder中打开目录。 - Paul Wasilewski

5

打开项目文件夹,显示来自.xcworkspace.xcodeproj的包内容。您会看到2个文件夹xcshareddataxcuserdata。请移除xcuserdata文件夹,尝试打开应用程序。 Xcode将正常工作。


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