xCodeプロジェクトでは、しばしばxcodeproject/project.pbxprojファイルが変更されましたが、私にとっては無駄な情報であり、コンパイルには役立ちません。
このファイルとxcodeproject/projectxworkspace/username.xcuserdata/UserInterfaceState.xcuserstateファイルをgitで無視する必要がありますか?
Swiftパッケージマネージャーに照らして更新:Swiftパッケージとしてプロジェクトをビルドする場合は、間違いなくすべきです。このファイルは、ファイルシステムを使用して真実のソースとして生成されるため、無視してください。それには、次のコマンドを使用します。
$ cd ~/Projects/MyProjectFolder/
$ Swift package generate-xcodeproj
SwiftPM以外の回答については、以下を参照してください。
このファイルには、プロジェクト内のすべてのファイルのリスト、ターゲットの設定、およびどのファイルがどのターゲットに属するかが含まれています。おそらく、プロジェクトバンドルの中で最も肉なファイルです。あなたはこのファイルを無視すべきではありません。これにはいくつかのポイントがあります。
これが、xcodeprojバンドルのリポジトリに必要な唯一のファイルです。そのファイルには、ターゲットファイルとビルド設定に関するすべての情報が含まれています。
Project.pbxprojを除外すると、Jenkinsビルドは失敗します。 Jenkinsを使用する場合、これは重要です。
残念ながら、ビルド設定にコード署名が含まれている場合、別のチームメンバーが変更した場合は、「git pull」のたびにコード署名エンティティを再入力する必要があります。この情報は、グローバルなpbxprojファイルではなく、ユーザー設定にあるはずです。
Xcworkspaceファイルも保存する必要があることがわかりました。そうでなかった場合、サブプロジェクトでプロジェクトが壊れました。
Xcodegenを使用してYAMLプロジェクト仕様ファイルからpbxprojを生成できます。その後、gitのpbxprojを無視して、必要なたびに生成できます。
モジュラーアーキテクチャ(多くのpbxprojs)を持つ2番目のプロジェクトでXcodegenを既に使用しており、8人以上の開発者が取り組んでいます。
https://github.com/yonaskolb/XcodeGen
それが役に立てば幸い。