1

我已经升级到 OSX Server 3.2.1,并且在 XCode 帐户首选项中添加了我的存储库。我们的 git 存储库托管在 TFS 服务器上(因为我的公司主要使用 Microsoft 系统)。我通过 HTTPS 访问 TFS 服务器。

现在,我可以添加存储库,它会提示输入我提供的凭据,并且存储库已成功添加。我通过 Source Code -> Project Name - Branch -> Configure Project 配置项目,之后我可以通过 Source Code 菜单成功签出代码。

但是,当我通过 Product -> Create Bot 创建一个机器人时,我会选择一个架构和一个服务器并为机器人命名。XCode 然后尝试验证设置并失败并显示以下内容:

凭据失败

我已经使用相同的凭据通过浏览器访问了存储库。似乎由于某种原因,XCode 不能很好地处理凭据。

知道如何解决这个问题吗?

4

2 回答 2

3

我似乎找到了解决方案。意外的 HTTP 状态代码:404 (-1) 与失败的身份验证没有直接关系。

身份验证成功,但现在存储库找不到“开发”分支的位置。原因是我们的存储库位于本地 TFS 实现中,该实现在存储库名称中包含空格。

出于某种原因,Xcode 可以毫无问题地检查代码,但 Xcode 机器人无法处理包含空格的存储库名称/URL。

此外,TFS 不允许您更改存储库名称。因此,我们通过使用 Charles 对请求进行 URL 重写来解决这个特定问题。这似乎解决了问题。

谢谢!

于 2014-10-13T11:27:25.200 回答
1

希望我在上面的答案中抓住了 Xcode 机器人无法处理带有空格的存储库名称的问题。

我不得不放弃一段时间。当 Xcode 6.1.1 发布时,我再次尝试,但仍然挣扎了好几天才能通过身份验证。使用日志记录手动运行 Xcode 时终于找到了问题:

/Applications/Xcode.app/Contents/MacOS/Xcode -XCSUISourceControlLogLevel 2

在日志中,我注意到有人试图用 '%2520' 替换空格。在大多数其他扩展存储库 URL 的地方,都会看到“%20”。

我正在使用本地 Xcode 服务器和 ssh。因此,如果您的应用名称中有空格(多个单词),请尝试以下操作:

1) 不要使用 Xcode/Source Control/[Your Project]/Configure [Your Project]... 下的“+ Create New Remote...”(这将创建名称中带有空格的存储库。)

2)使用服务器,创建一个名称中没有空格的存储库。在左侧面板中选择 Xcode,使用“Repositories”选项卡,单击“+”,然后输入不带空格的名称。然后点击“创建”。

3)回到您的开发机器上,使用 Xcode/Source Control/[Your Project]/Configure [Your Project]... 下的“Add Remote”(+ 在 Remotes 选项卡下)。输入存储库的路径,例如:

名称:源地址:ssh://username@servername.local/git/NoSpaceName.git

可能会要求您输入密码。当您的开发机器能够访问存储库时,您可以签入代码。然后您可以继续创建机器人。创建机器人时,可能会要求您提供存储库凭据。选择更改并提供用户名和密码。然后选择next来设置bot参数如Schedule等,直到bot被创建。

供参考。如果您需要删除指向旧/坏存储库的链接,您可能会多次启动和关闭 Xcode/Preferences.../Accounts 和 Xcode/Source Control/[Your Project]/Configure [Your Project ]...

于 2014-12-05T21:06:43.380 回答