Asset Catalog への画像リソース追加をシェルスクリプトで楽に行う

  • 19
    Like
  • 1
    Comment
More than 1 year has passed since last update.

Xcode 5 で追加された Asset Catalog は、画像リソースの管理に使うと便利です。
画像リソースをいじってもプロジェクトファイルが変更されないので、バージョン管理ツールでのコンフリクトが起こりにくくなります。また、非 Retina 画像と Retina 画像をペアにして管理できます。

しかし、Xcode 上で Images.xcassets に画像ファイルを追加しようと思うと、画像ファイルを所定の場所にいちいちドラッグ&ドロップしなくてはいけないため、面倒であり、間違いも発生しやすいです。

実は、Images.xcassets は非常に単純な構成になっています。単に imageset というフォルダの中に、画像ファイルそのものと、Contents.json というファイルがあるだけです。
このため、スクリプトを作って処理を自動化することができます。

実際に、スクリプトを書いてみました。

これで、だいぶ楽ができます。

スクリプトの使い方

使い方は次のとおりです。

  1. フォルダを新規に作り、そこに画像ファイルたちを入れます(aaaa.pngaaaa@2x.png といったペアになるファイルを両方入れておきます)。
  2. そのフォルダで、上記のシェルスクリプトを実行します。すると、imageset フォルダが自動で作成され、その中に画像ファイルが移動し、Contents.json が作成されます。
  3. できた imagesetImages.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

補足

ごく単純なスクリプトであり、エラー処理や気のきいた機能などはありません。いろいろと改良の余地はあると思います。