L'intégration de Git dans Xcode 4 est la bienvenue, mais elle semble un peu floue lorsqu'il s'agit de gérer des référentiels distants. Pour plus de clarté, j'utilise OS X version 10.6.7 et Xcode 4.0.2 (4A2002a).
Si je crée un nouveau projet Xcode 4 et accepte l'option de créer un référentiel Git local, tout va bien. Je peux m'engager localement et c'est super.
Quand je veux pousser le nouveau projet vers GitHub, je veux ajouter un référentiel distant et pousser mes modifications locales jusqu'à GitHub. Je peux ajouter un référentiel GitHub à Xcode 4 en tant que nouveau référentiel dans la fenêtre Organiseur mais il n'y a pas de méthode pour le définir comme référentiel distant pour mon projet existant.
Je passe donc à l'utilisation des commandes git dans Terminal.
git remote add Origin https://<username>@github.com/<organization>/<repository>.git
Si je retourne ensuite à Xcode 4 et essaie d'utiliser
Fichier -> Contrôle de source -> Push ...
puis la boîte de dialogue Choisissez le référentiel vers lequel effectuer les modifications. apparaît et répertorie le référentiel distant Origine . Un indicateur jaune indique que l'authentification est requise, ce qui est bien car je n'ai pas encore pu entrer mes informations d'identification pour HTTPS. Cependant, lorsque je clique sur "Push" et qu'il essaie de pousser les modifications, il dit "L'opération n'a pas pu être effectuée car l'accès au référentiel" Origin "est refusé."
Une boîte de dialogue m'invitant à saisir mon nom d'utilisateur et mon mot de passe apparaît alors avec mon pré-rempli, il doit donc être en train de lire correctement la configuration du référentiel local.
Lorsque j'entre mon mot de passe Xcode 4, il se bloque avec l'erreur suivante
ASSERTION FAILURE in /SourceCache/IDEKit/IDEKit-303/Framework/Classes/SourceControl/IDESourceControlOperationInfo.m:59
Details: Message sent to invalidated object: <IDESourceControlPushOperationInfo, 0x200bd2a80>. Backtrace for invalidation:
(null)
Object: <IDESourceControlPushOperationInfo: 0x200bd2a80>
Method: -invalidate
Thread: <NSThread: 0x200020700>{name = (null), num = 1}
Hints: None
Si je redémarre Xcode, un référentiel d'origine a été ajouté au navigateur des référentiels dans l'Organiseur et je peux voir la branche principale sur GitHub, donc je sais que les informations d'identification sont correctes sans que je change quoi que ce soit.
Quelqu'un a-t-il trouvé un moyen fiable d'utiliser Xcode 4 avec GitHub en commençant par un projet local?
Si je clone un référentiel GitHub existant avec un projet Xcode dedans, ouvrez-le avec Xcode 4 puis même si le premier Push semble échouer, le 2nd Push a alors fonctionné. Donc, peut-être que partir de zéro avec Xcode 4 créer le référentiel pour moi n'est pas le meilleur modèle (jusqu'à ce qu'ils améliorent l'outillage Git dans une version ultérieure de Xcode 4).
Cet exemple ne s'applique vraiment qu'au premier projet que vous ajoutez à un référentiel GitHub. En tant que tel, je pense que vous êtes mieux avec les étapes suivantes, en gardant à l'esprit qu'il semble toujours y avoir des "accrochages" Xcode dans cette solution.
Une chose que j'ai repérée et que je n'ai pas encore réussi à résoudre est que les messages de réponse de GitHub avec la valeur de hachage de consignation et tous les messages semblent être signalés dans le navigateur Xcode Log comme des échecs de Push, même si le Push réussit dans la mesure où GitHub est concerné.
Quelqu'un d'autre a une meilleure solution?
Je pense avoir trouvé le moyen Xcode de pousser un projet existant vers GitHub ou tout autre référentiel distant!
Ouvrez le Organisateur dans Xcode et allez dans l'onglet Repositories
Cliquez d'abord sur Télécommandes puis sur "Ajouter une télécommande"
Entrez un Nom distant et le Emplacement de votre référentiel distant et cliquez sur créer
Sélectionnez ensuite votre projet et ouvrez File -> Source Control -> Push ...
Sélectionnez votre référentiel distant et attendez qu'il soit connectable! Recherchez le Créer dans les crochets.
Maintenant, votre ancien projet est publié sur GitHub
J'espère que ça marchera aussi pour vous! Dans mon cas, cela fonctionne avec chaque dépôt git distant .
Veuillez me contacter sur Twitter si quelque chose n'est pas clair ou écrit dans un mauvais anglais!
J'ai réussi cela en utilisant une connexion ssh (qui ressemble à [email protected]:<username>/<project>.git
). Il authentifie l'utilisateur sur la base d'une clé publique SSH, que vous pouvez générer sur la ligne de commande - beaucoup de documents à ce sujet sur github dans la section "aide".
Xcode 6.2 (et peut-être 6.x) a changé les choses. Il n'y a plus d'onglet Référentiels dans l'Organiseur. Voici comment le faire avec les nouveaux Xcodes.
Pour ajouter un projet avec un référentiel git local à GitHub, voici ce que vous faites:
Terminé.