今日の勉強会でCodeSnippetsの機能の紹介を見て、後回しにしていたことを思い出して書き出してみることにしました。XcodeのCodeSnippetsのgit管理についてです。
CodeSnippets機能の簡単な説明
CodeSnippetsは、Xcodeのスニペット機能で、if文やinline Blockなどデフォルトで幾つか用意されています。利用時はこのようになります。

一覧はここにあります。

ここに書いたコードをドラッグ&ドロップするとカスタムのスニペットを追加することができます。更に、<# #>
でくくると、スニペットを利用した際にその部分にコードを挿入することができるようになります。その部分の利用方法は下記のブログがわかりやすいです。
スニペットに関してはこちらが参考になると思います。
CodeSnippetsをgitで管理する
さて、本題です。このCodeSnippets、マシンを変えたりするともちろん利用できないんですね。あと、Xcodeのメジャーアップデートの際などに消えてしまったような気もします(確証ないですが、そのあたりのタイミングでまっさらになりました)。そんな、不安定さがありあまり使っていなかったんですが、ちゃんとgitで管理しちゃえば不安とはおさらばできます。
まず、このファイルがどこにあるか。
~/Library/Developer/Xcode/UserData/CodeSnippets
ここにあります。カスタムのスニペットが一つでもあると表示されます。中身はxmlで記述されています。この CodeSnippets ディレクトリの中で、git init
してbitbucketだとかGithubにpushしておけば管理開始です。簡単ですね。
僕の場合は、こういう管理対象のファイルは~/tools/Xcode
ディレクトリにまとめて入れていて、そこからシンボリックリンクをXcodeの中に張っています。こうすることで管理対象を見失わないようになるかななんて思ってます。
$ ln -s ~/tools/Xcode/CodeSnippets ~/Library/Developer/Xcode/UserData/CodeSnippets
おまけ: CodeSnippetsをDropboxで共有する
同じような発想なんですが、Dropboxで共有することもできます。Dropboxのディレクトリの中にCodeSnippets本体を入れておき、~/Library/Developer/Xcode/UserData/CodeSnippets
にシンボリックリンクを作成すれば複数端末でCodeSnippetsを同期することができます。
お好きな方を〜。小ネタですがQiitaデビューとして書いてみました。