概要
毎回新プロジェクトを作る度にいちいちコミット対象として出てくるUserInterfaceState.xcuserstateくん。
これが面倒でgitからpullする時やpushする時にいらっとするはめになるのでまず無視する設定をしてます。
すぐ調べれば出るのですが、自分用に改めてメモ。
UserInterfaceState.xcuserstateとは
Xcode4になってUserInterfaceState.xcuserstateファイルが作成されるようになったらしく
少しでも変更を加えようものなら容赦なく差分を出してくるファイルです。
このファイル一体何をしているんだと軽く調べましたがほとんどが消す方法しかでてこず途中で断念しましたw
何か対象から外した時のデメリットとか知りたかったんですが、ほとんどのユーザーがこれで困って無視しているので問題はないのかなーと思い一旦置いておきます。
gitignoreの作成
UserInterfaceState.xcuserstateを無視するには、gitignoreファイルを作成します。
場所は、.gitファイルが置かれている場所(レポジトリのルートディレクトリ)と同じ階層に作成してください。
中身はこんな感じ。
.DS_Store
*.swp // これも指定しておくと便利
UserInterfaceState.xcuserstate // ここで指定
他にも追跡したくないファイルは最初にまとめておくのが便利。
すでにプロジェクトを作成してしまっている場合
UserInterfaceState.xcuserstateのキャッシュを消さないといつまでもコミット対象になるので消しましょう。
$ git rm --cached 自分のプロジェクト名.xcodeproj/xcuserdata/自分のアカウント名.xcuserdatad/UserInterfaceState.xcuserstate
$ git commit -m "removed cache."
これでOKです。かんたんです!
cocoapodを導入しているプロジェクトだとxccode~~以下にあるかもしれませんが、findでファイル自体を探してそこを指定してキャッシュを消してあげれば良いと思います。