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


101

XCodeプロジェクトでは、xcodeproject / project.pbxprojファイルを変更することがよくありますが、私にとっては役に立たない情報であり、コンパイルのためです。

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


.xcuserstateファイルは無視できますが、pbxprojファイルは無視できます。
Kendall Helmstetter Gelner、2012

いいえ、ここにあなたの答えは次のとおりです。 stackoverflow.com/questions/49478/...
jeswang

回答:


128

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

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

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

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

  1. あなたはこのプロジェクトだけに取り組みたくないかもしれません。
  2. さまざまなマシンからプロジェクトに取り組む予定です。
  3. コードベースを他のユーザーと共有する必要があります。

6

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


1
この答えはかつては真実だったかもしれませんが、現在は間違っています。それが「すべての情報」を保持していること(たとえば、カスタム実行可能ファイルが別のファイルに格納されている、たとえばワークスペースが別のファイルに格納されているなど)も、「唯一のファイル」であることも真実ではありません保存したい。- .gitignoreに含める内容に関する質問CF stackoverflow.com/questions/49478/...
アダム

1
それはよく考えられているようです...将来はそれに従ってください。
Gradyプレーヤー、

4

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


2
たとえば、ワイルドカード名を使用して各プロジェクトを個別に一致させるか、またはたとえば、すべてが同じiTunesチームに属していて、プロファイルを共有しているとします。
アダム


0

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


0

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

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

https://github.com/yonaskolb/XcodeGen

それが役に立てば幸い。


0

project.pbxprojは、Xcode構成バンドルの重要なファイルです。すべてのリンクされたファイルとそのグループ、リンクされたフレームワーク、そして最も重要なのはプロジェクトのビルド設定への参照を維持する責任があります。このため、バージョン管理からproject.pbxprojを除外できません。

これが私の.gitignoreXcodeプロジェクトの私の一般的なものです。

# 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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.