Swift と iOS/Xcode の .gitignore 設定
Swift、iOS、Xcode プロジェクト向けの完全な .gitignore。DerivedData、xcuserdata、CocoaPods、SPM ビルドフォルダ、Xcode ワークスペースメタデータを網羅します。
Language
詳細な説明
Xcode と Swift プロジェクトは大量のビルドキャッシュとユーザー固有のワークスペースデータを生成します。IDE が生成するファイルでの絶え間ないマージコンフリクトを避けるために、適切な .gitignore が不可欠です。
Xcode ビルドアーティファクト:
DerivedData/— Xcode の主要ビルドキャッシュ。コンパイル済みオブジェクトファイル、リンク済みバイナリ、インデックスデータ、モジュールキャッシュを含みます。プロジェクトごとに数ギガバイトに達することもあります。デフォルトでは~/Library/Developer/Xcode/DerivedData/に配置されますが、設定によってはプロジェクトディレクトリ内に配置されます。必ず無視してください。build/— レガシーの Xcode ビルドディレクトリ(DerivedData 以前の時代)。一部の設定や CI システムで今でも使用されます。*.xcarchive— App Store 提出またはアドホック配布用に作成される Xcode アーカイブ。
ユーザー固有の Xcode ファイル:
*.xcuserdata/とxcuserdata/— ユーザーごとのブレークポイント、UI レイアウト設定、スキーム設定を含みます。iOS プロジェクトでマージコンフリクトの最大の原因です。必ず無視してください。IDEWorkspaceChecks.plist— 初回起動時のワークスペース信頼ダイアログの状態。*.xccheckout— Xcode ワークスペースのソースコントロールメタデータ。
依存関係管理:
Pods/— CocoaPods の依存関係ディレクトリ。node_modules/と同様にPodfile.lockから再現可能です。Podfile.lockは必ずコミットしてください。.build/— Swift Package Manager (SPM) のビルドディレクトリ。フェッチされた依存関係とコンパイル済みプロダクトを含みます。Carthage/Build/— Carthage のプリビルドフレームワーク。Carthage/Checkouts/は再現性のためにコミットされることもありますが、両方を無視する方がクリーンです。
その他のパターン:
*.dSYMと*.dSYM.zip— デバッグシンボルファイル。クラッシュのシンボリケーションに重要ですが、個別にアーカイブすべきでコミットすべきではありません。*.ipa— iOS アプリケーションパッケージ。配布用のデプロイアーティファクトです。*.moved-aside— マージ解決時に Xcode が作成するコンフリクト解決バックアップファイル。*.hmap— C/Objective-C コンパイル時に使用されるヘッダーマップファイル。
コミットすべきもの: *.xcodeproj(プロジェクトファイル)、*.xcworkspace(ワークスペースや CocoaPods 使用時)、Podfile、Podfile.lock、Package.swift、Package.resolved(アプリケーションの場合)。
ユースケース
5人の開発者からなる iOS チームが xcuserdata ファイルでマージコンフリクトを繰り返しており、リポジトリのクリーンアップと将来の Xcode メタデータコミットの防止を必要としています。