Xcode 5 で追加された Asset Catalog は、画像リソースの管理に使うと便利です。
画像リソースをいじってもプロジェクトファイルが変更されないので、バージョン管理ツールでのコンフリクトが起こりにくくなります。また、非 Retina 画像と Retina 画像をペアにして管理できます。
しかし、Xcode 上で Images.xcassets
に画像ファイルを追加しようと思うと、画像ファイルを所定の場所にいちいちドラッグ&ドロップしなくてはいけないため、面倒であり、間違いも発生しやすいです。
実は、Images.xcassets
は非常に単純な構成になっています。単に imageset
というフォルダの中に、画像ファイルそのものと、Contents.json
というファイルがあるだけです。
このため、スクリプトを作って処理を自動化することができます。
実際に、スクリプトを書いてみました。
これで、だいぶ楽ができます。
スクリプトの使い方
使い方は次のとおりです。
- フォルダを新規に作り、そこに画像ファイルたちを入れます(
aaaa.png
とaaaa@2x.png
といったペアになるファイルを両方入れておきます)。 - そのフォルダで、上記のシェルスクリプトを実行します。すると、
imageset
フォルダが自動で作成され、その中に画像ファイルが移動し、Contents.json
が作成されます。 - できた
imageset
をImages.xcassets
フォルダに入れると、Xcode が自動的に認識してくれます。
実行例
フォルダ内に次のようなファイルがあるとします。
aaaa.png
aaaa@2x.png
bbbb.png
bbbb@2x.png
cccc.png
cccc@2x.png
このフォルダでスクリプトを実行すると、次のようになります。
-
aaaa.imageset
aaaa.png
aaaa@2x.png
Contents.json
-
bbbb.imageset
bbbb.png
bbbb@2x.png
Contents.json
-
cccc.imageset
cccc.png
cccc@2x.png
Contents.json
補足
ごく単純なスクリプトであり、エラー処理や気のきいた機能などはありません。いろいろと改良の余地はあると思います。