在XCode项目中,我经常会发现xcodeproject/project.pbxproj文件被修改,但这对我来说是无用的信息,它只与编译有关。我是否应该在Git中忽略此文件以及xcodeproject/projectxworkspace/username.xcuserdata/UserInterfaceState.xcuserstate文件?
针对Swift Package Manager的更新:如果你正在构建一个作为Swift包的项目,你应该忽略这个文件,因为它可以通过文件系统作为真相源生成。你可以使用以下命令实现:
$ cd ~/Projects/MyProjectFolder/
$ swift package generate-xcodeproj
对于非SwiftPM的答案,请见下文。
该文件保存了项目中所有文件的列表,目标的设置以及哪些文件属于哪个目标。这可能是项目包中最重要的文件。您不应该忽略此文件。原因如下:
.gitignore
中被忽略的文件夹和文件仍会被添加到 project.pbxproj
文件中,并可能被推送到服务器。具体情况是,我创建了一个用于本地测试目的的测试文件夹来存储密码,该文件夹将被 Git 忽略,但会包含在 project.pbxproj
文件中。 - Zhou Haiboproject.pbxproj是Xcode配置捆绑包中的重要文件。它负责维护对所有链接文件及其分组,链接框架以及最重要的项目构建设置的引用。因此,我们不能从版本控制中排除project.pbxproj。
下面是我针对Xcode项目的通用“.gitignore”文件。
# 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
这是xcodeproj包中您需要的唯一文件。该文件保存了所有目标文件和构建设置的信息。
如果你排除 project.pbxproj 文件,Jenkins 构建将会失败。因此,如果你使用 Jenkins,这是非常重要的。
很遗憾,如果您的构建设置包括代码签名,则在另一个团队成员更改它后,您必须在每次“git pull”之后重新输入您的代码签名实体。 我认为这些信息应该在用户设置中而不是全局pbxproj文件中。