【Xcode/Swift】Xcodeでの.gitignoreの設定方法、自分が使っている.gitignoreの内容を解説

この記事では、.gitignoreの使い方から、自分が実際に使っている.gitignoreの内容を解説していきたいと思います。

.gitignoreとは?

簡単にいうと、Gitにアップロードする際に、除外したいファイルを記載するファイルのことです。

.gitignoreを作成し、そのファイルにパスを書くと、そのパスのファイルはGitにアップロードされません。

例えば、Xcodeで機能を実装して、Gitの差分を確認すると、必ずUserInterfaceState.xcuserstateというファイルが変わっているはずです。これは、Xcodeを触ると変更されるファイルなので、このように差分に出てきてしまうんですね。

このように、差分に出てきて欲しくないファイルを、.gitignoreに記述することで除外することができます。

.gitignoreの作り方

まずは、.gitignoreのファイルを作ります。

STEP.1
チェンジディレクトリ

ターミナルを起動して、プロジェクトに移動しましょう。

cd プロジェクトのパス
STEP.2
.gitignore作成

以下のコマンドを打ってください。これで、.gitignoreというファイルが作られます。

touch .gitignore
STEP.3

.gitignoreを開きましょう。

open .gitignore
STEP.4
.gitignoreに記載

このファイルにこのようにパスを記載すると、Gitのアップロード対象から除外できます。

記載内容は後述します。

これで、Gitの差分にわけわからない情報が表示されなくなりました。

.gitignoreの内容

自分が使ってる.gitignore

# Xcode

## Mac OS X
.DS_Store

## Xcode build files
build/
DerivedData/

## Xcode settings
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
!default.pbxuser
!default.mode1v3
!default.mode2v3
!default.perspectivev3*.xcodeproj/*

## App packaging
*.ipa
*.dSYM.zip
*.dSYM

## Xcode Patch
*.xcodeproj/*
!*.xcodeproj/project.pbxproj
!*.xcodeproj/xcshareddata/
!*.xcworkspace/contents.xcworkspacedata

## library
Pods/*
Carthage/Build/

## Other
*.moved-aside
*.xccheckout
*.xcscmblueprint
*.xcuserstate
*.swp
xcuserdata/
*.moved-aside
!.gitkeep
*.hmap
*.ipa
*.xcuserstate
*.dSYM
timeline.xctimeline
playground.xcworkspace
.build/
Carthage/Build/
Dependencies/
.accio/
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots/**/*.png
fastlane/test_output
iOSInjectionProject/
xcuserdata/
build/
DerivedData/
*.xcscmblueprint
*.xccheckout
*.moved-aside
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
!default.pbxuser
!default.mode1v3
!default.mode2v3
!default.perspectivev3*.xcodeproj/*
*.xcodeproj/*
*.xcodeproj/project.pbxproj
*.xcodeproj/xcshareddata/
!*.xcworkspace/contents.xcworkspacedata
**/xcshareddata/WorkspaceSettings.xcsettings
Pods/*
*.swp
.DS_Store
/*.gcno

結構ありますね。。

ざっくり解説

.DS_Store

フォルダの表示設定に関する情報を保存するファイル。

build/

ビルドファイル。

DerivedData/

プロジェクトごとに生成するキャッシュデータ、インデックス、ログなどが入っているデータ。

*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
!default.pbxuser
!default.mode1v3
!default.mode2v3
!default.perspectivev3*.xcodeproj/*

Xcodeの設定など。ブレークポイントやウィンドウのサイズ、ブックマークなど。

*.ipa

ipaファイルを作成すると作られるファイル

*.dSYM.zip
*.dSYM

dSYMは、debug symbolの略で、アプリをコンパイルする過程で生成されるアプリのソースコードに含まれるクラス名やグローバル変数、メソッド名などのシンボル(名前)のリストのこと。

どこでクラッシュしたのかを解析する時に使われる。

*.xcodeproj/*
*.xcodeproj/project.pbxproj
*.xcodeproj/xcshareddata/
!*.xcworkspace/contents.xcworkspacedata

XcodeのプロジェクトのBuild Scheme、構成などが入っているデータ。

Pods/*

CocoaPodsでインストールしたライブラリのデータ。

Carthage/Build/

Carthageでインストールしたライブラリのデータ。

そこまでしっかりとなんだかわかってないものも入れているので、参考程度にしてください。