2015-09-28 47 views
8

升级到Xcode 7的一个不愉快的副作用是我无法再推送到我的Gitlab仓库。在过去的两年中,我一直在努力推动自己的项目顺利进行,所以我怀疑Xcode 7正在做一些不同的事情。我已经通过Web界面登录和登出,验证了我的u/p for Gitlab。当我去Xcode>首选项>帐户,选择gitlab项目,我看到用户名和密码在那里(就像他们已经2年),我确认他们是正确的。无法从xcode 7推送到gitlab

值得注意的是,我可以从终端成功发布,但是,我不希望使用终端将我的代码定期推送到Gitlab。有没有其他人遇到这个问题,因为升级?有关修复的任何建议?

我得到的具体错误是“验证失败,因为用户名或密码不正确。”这个错误出现在Accounts对话框中,以及在尝试执行gitlab repo之后。

+0

我甚至已经在这种情况下使用终端升级后Xcode7 – ThisClark

+0

问题,也许是因为XCode7考虑不同的家吗?正如我在http://stackoverflow.com/a/32795999/6309中所见。 – VonC

回答

7

所以这一块是很搏斗,并说实话,我不知道这是什么错误的根本原因是熊市,但我的方式解决它是这样的:

  1. 打消了我的老从GitLab ssh密钥
  2. 创建命令行上的新ssh密钥,然后将其加入到GitLab
  3. 移除在Xcode>首GitLab回购>帐户
  4. 重新加入GitLab帐户,使用所述SSH密钥选项(之前也是这样,这不是新的)
  5. 封闭的Xcode
  6. 吹散了项目
  7. 开业的Xcode的工作目录,然后选择源代码控制>结帐
  8. 的SSH地址(你可以从GitLab你的项目文件夹中获得)
  9. 制造一个微小的变化对项目进行测试,以推进
  10. 通过Xcode的源代码控制被推到GitLab能力的目的>推

瞧!工作。这绝对是核选择,但它让我再次工作。我坚信升级Xcode到7会搞砸了。如果其他人有这个问题,我希望这可以解决它!

2

我发现Xcode 7不喜欢在URL中倾斜“〜”了。请运行“git config --list”并检查URL。例如,我的远程URL是这样的:

ssh://[email protected]/~/product1.git 

我运行下面的命令后的Xcode可以把罚款:

git remote set-url origin ssh://[email protected]/home/nobody/product1.git 

git config branch.master.remote ssh://[email protected]/home/nobody/product1.git 
1

我的问题是,Xcode中使用了错误的密钥文件的尝试:的.ssh/id_rsa代替的.ssh/id_dsa的

3

和Xcode 7

同样的问题,我设法通过重新生成RSA密钥和Gitlab更新它们来解决这个问题。

编辑:不幸的是这个工作只有1次

EDIT2:更改SSH密钥后工作一次“正确的开箱即用”后,第二次我得到的登录凭证的问题,对话您可以在用户名/密码和SSH密钥之间进行选择。选择SSH密钥然后工作。之后,对话框不再出现。

因此,要总结:

  1. 的XCode推Gitlab不工作(要求登录凭据,SSH密钥不工作)
  2. 再生SSH RSA密钥,并将其添加到Gitlab(我删除了旧的)
  3. 然后没有对话框
  4. 下一次的xcode推工作要求通过SSH密钥的任何用户名/密码登录
  5. 选择SSH密钥的工作
  6. 之后,登录对话框不再出现
+0

你能发布更多的细节吗? – adao7000

+1

是的,我更新了我的帖子,因为我今天早上发现行为有点复杂;-) –

1

我的问题是,id_rsa是一个符号链接。

我的.ssh/id_rsa文件是另一个文件的符号链接。在xcode中,我将这个符号链接指定为我的ssh私钥文件。

在这个配置中,git pull正在工作,但git push失败。

然后,在xcode中,我将ssh私钥文件更改为指向常规文件(符号链接指向的文件)。瞧,推拉现在都在工作。

的Xcode 8.1版(8B62)