One unhappy side effect of upgrading to Xcode 7 is that I can no longer push to my Gitlab repo. I have been pushing and pulling from my project without problem for the last two years, so I suspect Xcode 7 is doing something different. I have verified my u/p for Gitlab by logging into and out of it via the web interface. When I go to Xcode > Preferences > Accounts, select the gitlab project, I see that the username and password are in there (just like they have been for 2 years) and I verify that they are correct.
It is worth noting that I can successfully post from Terminal, however, I do not wish to use Terminal to push my code to Gitlab on a regular basis. Has anyone else encountered this problem since upgrading? Any suggestions as to a fix?
The specific error I am getting is "Authentication failed because the user name or password was incorrect." This error appears in the Accounts dialog, as well as after trying to perform a push to the gitlab repo.
So this one was quite a bear to wrestle, and to be honest, I am not sure what the root cause of this error was, but the way I resolved it was this:
- Removed my old ssh key from GitLab
- Created a new ssh key on the command line, then added it to GitLab
- Removed the GitLab repo from Xcode > Preferences > Accounts
- Re-added the GitLab account, using the SSH Keys Option (which it was before as well, this is not new)
- Closed Xcode
- Blew away the working directory of the project
- Opened Xcode, then chose Source Control > Checkout
- Provided the SSH address (which you can get from GitLab within your project folder)
- Made a minor change to the project for the purposes of testing the ability to Push
- Pushed to GitLab via Xcode Source Control > Push
Voila! Worked. This was definitely the nuclear option but it got me working again. I firmly believe that upgrading Xcode to 7 screwed something up. If anyone else has this problem I hope this resolves it!
Same issue with xcode 7.
I managed to fix this issue by regenerating the RSA keys and updating them in Gitlab.
Edit: unfortunately this worked only 1 time
Edit2: After working one time "right out of the box" after changing the SSH keys, the second time I got the question for login credentials, the dialog where you can choose between username/password and SSH keys. Choosing SSH key then worked. After that the dialog didn't appear anymore.
So, to summarise:
- XCode push to Gitlab not working (asking for login credentials, SSH key not working)
- Regenerated SSH RSA key and added it to Gitlab (I removed the old one)
- Then pushing worked without dialog
- Next time xcode asked to login by either username/password of SSH keys
- Selecting SSH keys worked
- After that the login dialog didn't appear anymore
I found that Xcode 7 does not like tilt "~" in the URL anymore. Please run "git config --list" and check the URLs. For example, my remote URL looked like this:
ssh://nobody@nowhere.com/~/product1.git
Xcode can push fine after I run the following commands:
git remote set-url origin ssh://nobody@nowhere.com/home/nobody/product1.git
git config branch.master.remote ssh://nobody@nowhere.com/home/nobody/product1.git
My problem was that Xcode tried using the wrong key file : .ssh/id_rsa instead of .ssh/id_dsa
My issue was that id_rsa was a symbolic link.
My .ssh/id_rsa file was a symbolic link to another file. In xcode, I had specified this symbolic link as my ssh private key file.
In this configuration, git pull was working but git push was failing.
Then, in xcode, I changed the ssh private key file to point to a regular file (the file that the symbolic link was pointing to). And voila, both push and pull are working now.
Xcode Version 8.1 (8B62)