444 votes

Ce qui se passe dans votre .gitignore si vous ' re en utilisant CocoaPods ?

J'ai fait la de développement iOS pour un couple de mois maintenant et tout juste d'apprendre le prometteur CocoaPods bibliothèque pour la gestion de la dépendance.

Je l'ai essayé sur un projet personnel: ajout d'une dépendance à Kiwi pour mon Podfile, couru pod install CocoaPodsTest.xcodeproj, et le tour est joué, il a travaillé beaucoup.

La seule chose que je me pose, c'est: que dois-je vérifier, et que dois-je ignorer pour le contrôle de version? Il semble évident que je veux vérifier dans le Podfile lui-même, et probablement la .xcworkspace fichier ainsi; mais puis-je ignorer les Gousses/ répertoire? Existe-il d'autres fichiers qui seront générés en bas de la route (quand j'en ajouter d'autres dépendances) que je devrais aussi ajouter à mes .gitignore?

442voto

Luke Redpath Points 4424

Je remets mon Gousses d'annuaire. Je ne suis pas d'accord que les Gousses d'annuaire, un artefact. En fait, je dirais le plus n'est certainement pas. C'est une partie de la source de votre application: il ne sera pas construire sans elle!

Il est plus facile de penser à CocoaPods comme un outil de développement plutôt qu'un outil de construction. Il n'a pas à construire votre projet, il suffit simplement de clones et installe vos dépendances pour vous. Il ne devrait pas être nécessaire d'avoir CocoaPods installé pour être en mesure de simplement construire votre projet.

En faisant CocoaPods une dépendance de votre build, vous devez maintenant vous assurer qu'il est disponible partout où vous pourriez avoir besoin pour construire votre projet...une équipe d'admin besoins, votre serveur CI en a besoin. Vous pouvez, en règle générale, toujours être en mesure de cloner votre dépôt et de construire sans effort supplémentaire.

Ne pas s'engager à vos Gousses directory crée également un gros mal de tête si vous basculez souvent branches. Maintenant, vous devez exécuter la gousse d'installer chaque fois que vous changez branches assurez-vous que vos dépendances sont corrects. Cela peut être moins de tracas que vos dépendances stabiliser, mais au début d'un projet c'est un énorme puits de temps.

Donc, ce que j'ai donc ignorer? Rien. Podfile, le fichier de verrouillage et les Gousses répertoire de tous les obtenir commis. Croyez-moi, il va vous faire économiser beaucoup de tracas. Quels sont les inconvénients? Un légèrement plus grand repo? Pas la fin du monde.

305voto

Matt Mower Points 1154

Personnellement je ne vérifient pas dans le répertoire de gousses et le contenu. Je ne peux pas dire j’ai passé de longs âges, étant donné les implications, mais mon raisonnement est quelque chose comme :

Le Podfile se réfère à une balise spécifique ou ou commettent de chaque dépendance donc les gousses se peuvent provenir de la podfile, ergo ils ressemblent plus à un produit de la génération intermédiaire qu’une source et, par conséquent, n’ont pas besoin version control dans mon projet.

173voto

Fabio Points 1429

Je recommande d'utiliser le GitHub de l'Objective-C gitignore. Dans le détail, les meilleures pratiques sont les suivantes:

  • L' Podfile doit toujours être sous contrôle de code source.
  • L' Podfile.lock doit toujours être sous contrôle de code source.
  • L'espace de travail généré par CocoaPods doit être gardé sous contrôle de code source.
  • Toute Pod référencé par l' :path option doit être gardé sous contrôle de code source.
  • L' ./Pods le dossier peut être gardé sous contrôle de code source.

Pour plus d'informations vous pouvez consulter le guide officiel.

source: je suis un membre de la CocoaPods équipe de base, comme @alliage


Bien que les Gousses dossier, un artefact, il ya des raisons que vous pourriez envisager de décider si pour le garder sous contrôle de code source:

  • CocoaPods n'est pas un gestionnaire de paquet, afin de la source d'origine de la bibliothèque pourrait être supprimé à l'avenir par l'auteur.
  • Si les Gousses dossier est inclus dans le contrôle de code source, il n'est pas nécessaire d'installer CocoaPods pour exécuter le projet que la caisse devrait suffire.
  • CocoaPods est toujours en cours et il y a des options qui ne sont pas toujours d'aboutir au même résultat (par exemple l' :head et de la :git options ne sont pas actuellement à l'aide de la commet stockés dans l' Podfile.lock).
  • Il y a moins de points de défaillance si vous pouvez reprendre le travail sur un projet après un moyen/long laps de temps.

39voto

alloy Points 5899

Je travaille en général sur l'application de clients. Dans ce cas, j'ai ajouter les Gousses d'annuaire pour les pensions ainsi, pour s'assurer qu'à tout moment, n'importe quel développeur peut faire une extraction et de créer et d'exécuter des.

Si c'était une application de la nôtre, je serais probablement exclure les Gousses répertoire jusqu'à ce que je ne travaillez pas sur elle pendant un certain temps.

En fait, je dois conclure, je ne pourrais pas être la meilleure personne pour répondre à votre question, par rapport à des vues de pure utilisateurs :) je vais tweet à propos de cette question de https://twitter.com/CocoaPodsOrg.

20voto

funroll Points 4014

Je vérifie en tout. ( et .)

Je veux être en mesure de cloner le référentiel et de savoir que tout fonctionnera juste comme il l’a fait la dernière fois que j’ai utilisé l’application.

J’ai eu plutôt vendeur choses que risque d’avoir des résultats différents qui pourraient être causés par une version différente de la gemme, ou quelqu'un réécrire l’histoire dans le référentiel de la gousse, etc..

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X