【iOS】ファイルのソート方法

XCodeでの開発でファイルのソートをしていますか?

XCodeのProjectファイルはファイルの順序を記憶しているため、ファイルを少し動かしただけでもgitの差分が生まれてしまいます。 複数人で開発していると ファイルの順序によるgit差分 が含まれたPRをたまに見かけますよね。

そのような どうでも良い差分に脳のリソースを使わない ためにも、 ファイルの順序を一意に決定 しておく必要があります。 そして、それは非常に簡単に行なうことができます。

ソートプログラム

ファイルのソートプログラムは野良ツールがいくつかありますが、今回は Apple純正のソートプログラム を紹介しようと思います。 github.com

これはWebKitディレクトリ内のとあるファイルです。リンク先に飛べばわかるのですが、 sort-Xcode-project-file というファイルがあります。 perlが読めないので処理内容はいまいちわからないのですが、ファイルの冒頭に次のコメントがあります。

Script to sort "children" and "files" sections in Xcode project.pbxproj files

これは、まさしく求めていたものですね。

実行方法

このファイルのみ取得し実行するため、下記のようなスクリプトを書きます。

#!/bin/zsh

curl https://raw.githubusercontent.com/WebKit/webkit/master/Tools/Scripts/sort-Xcode-project-file > sort-Xcode-project-file
perl sort-Xcode-project-file <path/to/your/app.xcodeproj>

(ファイル数に依存するとは思いますが)実行時間は短いので上記のスクリプトをBuild Phasesに追加してしまっても良いかもしれません。

生産性に大きな寄与とならないですが、労力かけずにディレクトリの治安が良くなるのでぜひ導入してみてください。