[英]Should I git ignore xcodeproject/project.pbxproj file?
在 XCode 项目中,我犯了 xcodeproject/project.pbxproj 文件更改,但对我来说无用的信息,它用于编译。
我应该忽略这个文件和 xcodeproject/projectxworkspace/username.xcuserdata/UserInterfaceState.xcuserstate 文件吗?
根据 Swift 包管理器进行更新:如果您将项目构建为 Swift 包 - 您绝对应该忽略此文件,因为它可以使用文件系统作为真实来源生成。 您可以使用以下命令执行此操作:
$ cd ~/Projects/MyProjectFolder/
$ swift package generate-xcodeproj
对于非 SwiftPM 答案 - 见下文。
该文件包含项目中所有文件的列表、目标的设置以及哪些文件属于哪些目标。 它可能是项目包中最丰富的文件。 您不应忽略此文件。 这有几点:
这是您在 xcodeproj 包中的存储库中唯一需要的文件。 该文件包含目标文件和构建设置的所有信息。
不幸的是,如果您的构建设置包含代码签名,那么如果其他团队成员更改了它,您必须在每次“git pull”之后重新输入您的代码签名实体。 在我看来,这个信息应该在用户设置中,而不是全局 pbxproj 文件中。
如果排除 project.pbxproj Jenkins 构建将失败。 所以如果你使用 Jenkins,这很重要。
project.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
您可以使用 Xcodegen 从 YAML 项目规范文件中生成 pbxproj,然后您可以在 git 中忽略 pbxproj 并在每次需要时生成它们。
我已经在第二个项目中使用了 Xcodegen,该项目具有模块化架构(许多 pbxprojs),并且有超过 8 位开发人员正在研究它。
https://github.com/yonaskolb/XcodeGen
希望能帮助到你。
我发现我还需要保留 xcworkspace 文件。 如果没有,带有子项目的项目就会失败。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.