web-dev-qa-db-fra.com

Dois-je ignorer le fichier xcodeproject / project.pbxproj?

dans un projet XCode, j'ai souvent eu le fichier xcodeproject/project.pbxproj modifié, mais des informations inutiles pour moi, pour la compilation.

Dois-je ignorer ce fichier et le fichier xcodeproject/projectxworkspace/username.xcuserdata/UserInterfaceState.xcuserstate?

91
qichunren

Mise à jour à la lumière de Swift Package Manager: Si vous construisez un projet en tant que Swift package - vous devez absolument ignorer ce fichier car il peut être généré en utilisant le système de fichiers comme source de vérité. Vous pouvez le faire en utilisant la commande suivante:

$ cd ~/Projects/MyProjectFolder/
$ Swift package generate-xcodeproj

Pour une réponse non SwiftPM - voir ci-dessous.

Ce fichier contient la liste de tous les fichiers du projet, les paramètres des cibles et les fichiers appartenant à quelles cibles. C'est probablement le fichier le plus charnu du bundle de projet. Vous ne devriez pas ignorer ce fichier. Il y a peu de points à cela:

  1. Vous ne voudrez peut-être pas travailler seul sur ce projet ou;
  2. Vous prévoyez de travailler sur un projet à partir de différentes machines;
  3. Vous voudrez partager votre base de code avec d'autres;
122
Eimantas

C'est le seul fichier que vous souhaitez dans vos dépôts à partir du bundle xcodeproj. Ce fichier contient toutes les informations sur les fichiers cibles et les paramètres de génération.

6
Grady Player

Si vous excluez project.pbxproj, les générations Jenkins échoueront. C'est donc important si vous utilisez Jenkins.

Malheureusement, si vos paramètres de build incluent la signature de code, vous devez ressaisir votre entité de signature de code après chaque "git pull" si un autre membre de l'équipe l'a changé. Il me semble que cette information devrait se trouver dans les paramètres utilisateur et non dans le fichier global pbxproj.

3
Julius Smith

J'ai constaté que je dois également conserver les fichiers xcworkspace. Sinon, le projet avec un sous-projet a échoué.

0
Paul Cezanne

Vous pouvez utiliser Xcodegen pour générer un pbxproj à partir d'un fichier de spécification de projet YAML, puis vous pouvez ignorer pbxproj dans git et les générer à chaque fois que vous en avez besoin.

J'ai déjà utilisé Xcodegen sur un deuxième projet qui a une architecture modulaire (de nombreux pbxprojs) et plus de 8 développeurs y travaillent.

https://github.com/yonaskolb/XcodeGen

J'espère que ça aide.

0
Cyril Cermak