Asset Catalog の AppIcon を使って複数ターゲットで出し分ける
Asset Catalog 以前
Asset Catalog が出るまでは、アプリのアイコンをターゲット毎に出し分ける際は
以前に僕が書いた
と同じ要領で、ビルド後のスクリプトを用いてターゲット毎に用意された画像を適宜配置する必要がありました。
Asset Catalog 以後
Xcode 5 から Asset Catalog という画像管理に便利な機能が追加されました。
Xcode 5 で新しくプロジェクトを作成すると、Images.xcassets というフォルダがデフォルトで作成されます。
内部には AppIcon と LaunchImage という Image Set があり、これらに画像を適用するといった具合です。
画像の slicing を直感的に指定できたり、AppIcon も iOS/iPad 毎、iOS のバージョン毎に指定できたりと便利です。
Asset Catalog を用いたアイコン出し分け
では上記の AppIcon や Launch Image を出し分けるかという肝心な所ですが、
Build Settings を覗くと、 以下の項目がある事に気付くかと思います。
Asset Catalog Compiler - Options
その中に、
Asset Catalog App Icon Set Name Asset Catalog Launch Image Set Name
という設定項目があり、デフォルトでは AppIcon と LaunchImage が設定されています。
これを ReleaseAppIcon などの自身で設定した Image Set 名に設定する事で、
ターゲット毎に Image Set を変更する事が可能になります。
ちなみに xcconfig などで書くのであれば、上記2項目のディレクティブは以下です。
ASSETCATALOG_COMPILER_APPICON_NAME ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME
Asset Catalog のとても残念な所
ここまで Asset Catalog の良い所だけ書いてきましたが、実のところ残念な所も多いです。
たとえば上記で行ったターゲット毎の Image Set の出し分けを、
アプリ内で利用するリソースに対しても行うのは非常に困難で、
結局ビルド後のスクリプトで Images.xcassets 配下の画像リソースを上書きする手間が出てきます。
詳細は下書き程度に書いた僕のブログを読んでください。