2

我今天已经更新到 XCode 5(使用 Mac AppStore),并且自从我打开我以前的项目(即位于我本地 SVN 中的 repos 的工作副本)时它就会不断崩溃。

错误报告包含指示 XCode 与我的 SVN 存在一些问题的信息 (IDESourceControlCredentialsValidator):

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

Application Specific Information:
ProductBuildVersion: 5A1413
ASSERTION FAILURE in /SourceCache/DVTFoundation/DVTFoundation-3532/Framework/Classes/Protocols/DVTInvalidation.m:243
Details:  <IDESourceControlCredentialsValidator, 0x7f8df10808f0> was never invalidated.

是的,这似乎是原因。当我打开 XCode 并单击“检查现有项目”时,它会在我输入服务器地址并开始连接后立即崩溃。

为了仍然能够工作,我打开了 XCode-Preferences-Source Control 并取消选中“Enable Source Control”。所以现在我必须使用另一个 SVN 工具来签入和更新我的仓库,而不是 XCode。

有谁知道如何解决这个问题?或者有没有人有类似的问题?

4

5 回答 5

7

我也遇到过这个问题。要防止 xCode5 崩溃,请按照以下步骤操作。Xcdoe > Preferences > Source Control > 取消选中 Enable Source control 。之后Xcode不会崩溃.. :)

于 2013-09-20T10:23:01.603 回答
5

他们没有费心添加 UI 控件以允许您绕过 SVN 证书的有效性检查。我的 svn 服务器上有一个自签名证书,这个解决方案为我解决了这个问题。您必须在终端中“svn info url”并(p)永久接受该证书。之后,xcode 将工作。

在这里找到解决方案:http: //kthoms.wordpress.com/2011/03/17/fixing-subversion-problem-error-validating-server-certificate/

于 2013-09-27T15:17:58.540 回答
1

我有同样的问题并解决了它。在以前的 xcode 版本中,我使用绝对 IP 地址来签出项目(例如https://10.0.0.1:8443),但这当然与服务器证书指定的主机名不匹配。所以我使用终端命令行提交所有代码,然后我打开一个新文件夹并重新签出项目,这次使用主机名作为 svn 地址(例如https://{hostname}:8443

然后,在 Xcode 5 上,打开没有所有以前项目的 xcode(单击 xcode 图标时按 alt+shift 执行此操作)。转到您的偏好并按帐户选项卡。在那里你应该看到你的旧存储库地址,删除它。

现在从您在前面步骤中创建的新重新签出文件夹中打开您的项目。中提琴 - 一切都应该正常工作。

于 2013-09-29T13:30:11.550 回答
0

好的 - 感谢 trojanfoe 给我的链接,我能够让 XCode 再次与我的 repos 一起玩。Jordan Upham 的回复完成了这项工作:https ://devforums.apple.com/message/887478#887478

于 2013-09-19T10:55:07.800 回答
0

感谢@Nishith Sheth 的回答,尽管这确实阻止了 Xcode 崩溃,但这意味着您需要从 Xcode 外部使用 svn。对我来说,这不是一个永久的解决方案。

我估计问题在于您的工作副本升级到 svn 1.7,但您的 svn 客户端是 1.6.x。要检查您的 svn 版本,请打开终端并输入:

svn --版本

如果您看到版本是 1.6.x 或更低,您将需要升级您的 svn 版本。这可以通过转到 Xcode > Preferences... > Downloads 来实现。

在此处输入图像描述

安装命令行工具,它还将安装 svn 1.7 客户端。安装后,检查 svn 的版本,现在应该是 1.7。

关闭 Xcode 并再次启动它,它应该不再崩溃,您应该能够再次使用 Xcode 中的 svn。

有关更多信息以及我找到答案的位置,请参阅答案。

于 2013-10-08T10:46:07.460 回答