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

qic*_*ren 93 git macos xcode ios

在一个XCode项目中,我发现xcodeproject/project.pbxproj文件已更改,但对我来说无用的信息,它用于编译.

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

Eim*_*tas 125

根据Swift Package Manager进行更新:如果您正在将项目构建为Swift包 - 您绝对应该忽略此文件,因为它可以使用文件系统作为事实来源生成.您可以使用以下命令执行此操作:

$ cd ~/Projects/MyProjectFolder/
$ swift package generate-xcodeproj
Run Code Online (Sandbox Code Playgroud)

对于非SwiftPM的答案 - 见下文.

此文件包含项目中所有文件的列表,目标设置以及属于哪些目标的文件.它可能是项目包中最内容的文件.你不应该忽略这个文件.对此有几点意见:

  1. 您可能不想单独从事这个项目;
  2. 你计划从不同的机器上开展项目;
  3. 您需要与他人分享您的代码库;


Jam*_*mes 8

\n

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

\n
\n\n

这是我的 Xcode 项目的概要.gitignore

\n\n
# OS X Finder\n.DS_Store\n\n# Xcode per-user config\n*.mode1\n*.mode1v3\n*.mode2v3\n*.perspective\n*.perspectivev3\n*.pbxuser\n*.xcworkspace\nxcuserdata\n\n# Build products\nbuild/\n*.o\n*.LinkFileList\n*.hmap\n\n# Automatic backup files\n*~.nib/\n*.swp\n*~\n*.dat\n*.dep\n
Run Code Online (Sandbox Code Playgroud)\n


Gra*_*yer 6

这是您在xcodeproj包中的repos中唯一需要的文件.该文件包含目标文件和构建设置的所有信息.


小智 5

不幸的是,如果您的构建设置包含代码签名,那么如果其他团队成员更改了它,您必须在每次“git pull”之后重新输入您的代码签名实体。在我看来,这个信息应该在用户设置中,而不是全局 pbxproj 文件中。

  • 您可以设置代码签名,以便项目中的每个人都有一个不同的代码签名配置文件,该配置文件与项目中的相同(共享)设置匹配,例如通过使用通配符名称,然后每个人单独匹配它,或者通过例如,所有人都在同一个 iTunes 团队中并共享配置文件。 (2认同)

Jos*_*owu 5

如果排除 project.pbxproj Jenkins 构建将会失败。所以如果你使用 Jenkins,这一点很重要。