我应该git忽略xcodeproject / project.pbxproj文件吗?


101

在XCode项目中,我更改了xcodeproject / project.pbxproj文件,但对我来说无用的信息,可用于编译。

我应该忽略该文件和xcodeproject / projectxworkspace / username.xcuserdata / UserInterfaceState.xcuserstate文件吗?


.xcuserstate文件,而不是pbxproj文件,可以忽略。
Kendall Helmstetter Gelner

不,这里是你的答案: stackoverflow.com/questions/49478/...
jeswang

Answers:


128

根据Swift软件包管理器进行更新:如果要以Swift软件包的形式构建项目,则应忽略此文件,因为可以使用文件系统作为真实来源来生成该文件。您可以使用以下命令来做到这一点:

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

对于非SwiftPM答案-请参阅下文。

该文件包含项目中所有文件的列表,目标设置以及哪些文件属于哪些目标。这可能是项目包中最复杂的文件。您不应忽略此文件。这里有几点要点:

  1. 您可能不想单独从事此项目,或者;
  2. 您正计划从不同的机器上进行项目;
  3. 您需要与他人共享您的代码库;

6

那是您从xcodeproj软件包中的仓库中唯一想要的文件。该文件包含目标文件和构建设置的所有信息。


1
这个答案可能曾经是正确的,但目前是错误的。它既不包含“所有信息”(某些内容,例如自定义可执行文件存储在不同的文件中,例如工作区存储在不同的文件中,等等),也不是它是您的“唯一文件”要存储。比照有关的.gitignore包括什么问题- stackoverflow.com/questions/49478/...
亚当

1
似乎经过深思熟虑了...以后再做吧。
Grady Player

4

不幸的是,如果您的构建设置包括代码签名,那么如果另一个团队成员进行了更改,则必须在每个“ git pull”之后重新输入代码签名实体。在我看来,此信息应位于用户设置中,而不是全局pbxproj文件中。


2
您可以设置代码签名,以便项目中的每个人都具有与项目中相同(共享)设置匹配的不同代码签名配置文件,例如,使用通配符名称,然后每个人分别将其匹配,或者通过例如,所有人都在同一个iTunes团队中并共享个人资料。
亚当


0

我发现我还需要保留xcworkspace文件。如果没有,则带有子项目的项目中断。



0

project.pbxproj是Xcode配置包中的重要文件。它负责维护对所有链接文件及其分组,链接框架以及最重要的是项目的构建设置的引用。因此,我们不能从版本控制中排除project.pbxproj。

这是我的.gitignoreXcode项目的总称。

# OS X Finder
.DS_Store

# Xcode per-user config
*.mode1
*.mode1v3
*.mode2v3
*.perspective
*.perspectivev3
*.pbxuser
*.xcworkspace
xcuserdata

# Build products
build/
*.o
*.LinkFileList
*.hmap

# Automatic backup files
*~.nib/
*.swp
*~
*.dat
*.dep
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.