无法使用OSX Server 3.2.1在XCode 6.0.1中创建CI Bot

时间:2014-10-08 13:46:43

标签: osx-mavericks xcode6 xcode-bots

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

现在,我可以添加存储库,它会提示我提供的凭据,并且存储库已成功添加。 我按源代码配置项目 - >项目名称 - 分支 - >配置项目 之后我可以通过源代码菜单成功检查代码。

然而,当我通过产品创建机器人时 - >创建Bot,我选择一个模式和一个服务器,并给机器人一个名字。然后XCode尝试验证设置并失败,并显示以下内容:

Credentail Failure

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

如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

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

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

出于某种原因,Xcode可以在没有任何问题的情况下检查代码,但是Xcode机器人无法处理包含空格的存储库名称/ URL。

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

谢谢!

答案 1 :(得分: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)使用Server,在名称中创建一个没有空格的存储库。在左侧面板中选择Xcode,使用“存储库”选项卡,单击“+”,然后键入不带空格的名称。然后点击“创建”。

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

姓名:原产地    地址:ssh://username@servername.local/git/NoSpaceName.git

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

FYI。如果您需要删除在Xcode / Preferences ... / Accounts和Xcode / Source Control / [Your Project] / Configure [Your Project]下找到的旧/坏存储库的链接,您可能会多次上下Xcode ] ...