しおメモ

雑多な技術系ブログです。

XcodeのSnippetsなどのカスタマイズ情報をgitで管理する

Xcodeのキーバインドや、コードスニペットなどのカスタマイズした情報(UserData)をgit管理する方法を記載します。

個人サーバーやGitHub等を使ってリモートで管理しておくと、Xcodeのバージョンアップの際や複数の環境で設定を揃える際に非常に楽になります。

既存の設定からgitリポジトリを作る

特に変なことをしていなければ、~/Library/Developer/Xcode/UserDataにカスタマイズした設定が全て入っています。

丁寧にやる場合、シンボリックリンクなどを使って別の場所でリポジトリを作るというやり方もありますが、ここでは横着をして上記のパスでリポジトリを作ります。

cd ~/Library/Developer/Xcode/UserData
git init
git remote add origin <repo>

UserDataの中身はこのような感じになっています。

f:id:scior:20200125230755p:plain

.xcstate.xcuserstateなどのIDEの状態を保持するファイルはいらないので、.gitignoreに含めておきます。

自分の場合、以下ののディレクトリのみを管理しています。

  • CodeSnippets
  • FontAndColorThemes
  • KeyBindings

.gitignoreの例です。

*.plist
*.xcstate
*.xcuserstate

IB Support/
IDEEditorInteractivityHistory/
Portal/

ファイルの微調整

コードスニペットはXcodeから生成した場合、ファイル名が{UUID}.codesnippetとなってしまい、数が増えてくると管理しづらくなるので、適宜リネームすることをおすすめします。

f:id:scior:20200125230916p:plain

テーマについては.xccolorthemeファイルの中身がXMLになっているので、複数人で利用したり、細かく気にする人は調整すると良いです。

良い感じになったら、リモートに上げます。

設定をローカルに反映させる

まっさらな環境であれば、リモートから引っ張ってくれば大丈夫です。

cd ~/Library/Developer/Xcode/UserData
git init
git remote add origin <repo>
git pull origin master

既に別の環境が出来上がっている場合は、それぞれから必要なファイルをピックアップする必要があります。