web-dev-qa-db-ja.com

xcodeproject / project.pbxprojファイルをgitで無視する必要がありますか?

xCodeプロジェクトでは、しばしばxcodeproject/project.pbxprojファイルが変更されましたが、私にとっては無駄な情報であり、コンパイルには役立ちません。

このファイルとxcodeproject/projectxworkspace/username.xcuserdata/UserInterfaceState.xcuserstateファイルをgitで無視する必要がありますか?

91
qichunren

Swiftパッケージマネージャーに照らして更新:Swiftパッケージとしてプロジェクトをビルドする場合は、間違いなくすべきです。このファイルは、ファイルシステムを使用して真実のソースとして生成されるため、無視してください。それには、次のコマンドを使用します。

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

SwiftPM以外の回答については、以下を参照してください。

このファイルには、プロジェクト内のすべてのファイルのリスト、ターゲットの設定、およびどのファイルがどのターゲットに属するかが含まれています。おそらく、プロジェクトバンドルの中で最も肉なファイルです。あなたはこのファイルを無視すべきではありません。これにはいくつかのポイントがあります。

  1. このプロジェクトだけで作業したくない場合や、
  2. 別のマシンからプロジェクトに取り組むことを計画しています。
  3. コードベースを他の人と共有したいと思うでしょう。
122
Eimantas

これが、xcodeprojバンドルのリポジトリに必要な唯一のファイルです。そのファイルには、ターゲットファイルとビルド設定に関するすべての情報が含まれています。

6
Grady Player

Project.pbxprojを除外すると、Jenkinsビルドは失敗します。 Jenkinsを使用する場合、これは重要です。

残念ながら、ビルド設定にコード署名が含まれている場合、別のチームメンバーが変更した場合は、「git pull」のたびにコード署名エンティティを再入力する必要があります。この情報は、グローバルなpbxprojファイルではなく、ユーザー設定にあるはずです。

3
Julius Smith

Xcworkspaceファイルも保存する必要があることがわかりました。そうでなかった場合、サブプロジェクトでプロジェクトが壊れました。

0
Paul Cezanne

Xcodegenを使用してYAMLプロジェクト仕様ファイルからpbxprojを生成できます。その後、gitのpbxprojを無視して、必要なたびに生成できます。

モジュラーアーキテクチャ(多くのpbxprojs)を持つ2番目のプロジェクトでXcodegenを既に使用しており、8人以上の開発者が取り組んでいます。

https://github.com/yonaskolb/XcodeGen

それが役に立てば幸い。

0
Cyril Cermak