Alternate Iconsの設定の仕方
ざっくりまとめ。
- Alternate Icons の設定まとめ
- Info.plist あたりで
CFBundleIcons
を記述したらおk - iPadは?
CFBundleIcons~ipad
と記述します
です。
環境
- Xcode v10.3
やりたいこと
Alternate Icons を利用したい!!
やっていき
ここらへんググればたくさんでてくるので、さくっと行きますw
用意している画像名は
です。
Info.plist あたりに下記の感じで記述したらおkです
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>icon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>wataten_icon</string>
</array>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string></string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
で設定するコードは
UIApplication.shared.setAlternateIconName("icon") { error in
}
これだけです。
<key>icon</key>
で指定する文字列が setAlternateIconName("icon")
で指定する文字列に連動します。なのでこちらは任意です。
<string>wataten_icon</string>
で指定する文字列は画像ファイルの名前と連動します。
追加する画像ファイルはアセットカタログに追加ではだめで、直接リソースとして追加する必要があります。
これで、アプリアイコンも変更できますね!
ちなみに、アイコンサイズを間違うと動作しません
iPad では。。?
このままだと、iPad では動きません。
前述したとおり、アイコンサイズが違うとエラーになるからです。
上記だけだと iPhone 用のアプリアイコンサイズでしか用意してないため、iPad では設定できないという流れ。
ここで疑問になるのが、iPad 用の設定はどうするのだろう?🤔 ということ。
こうなります!
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>icon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>wataten_icon</string>
</array>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string></string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>CFBundleAlternateIcons~ipad</key>
<dict>
<key>icon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>wataten_icon_ipad</string>
</array>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string></string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
<key>CFBundleAlternateIcons~ipad</key>
っていうのを追加して iPhone と同じように記述します。
画像は
を新たに用意して追加してます。
これで無事に iPad でも使えるようになります!!💪
あれれぇ?アイコンはサイズあってないとダメじゃないの??
そう、iPad には3種類アプリアイコンのサイズがあります。
- 76pt
- 76x2pt
- 83.5x2pt
83.5x2pt ... iPad Pro(3rd) の設定用のアイコンです。
上記までだとこれの設定は特にしていません。
が、iPad Pro(3rd) でも上記設定のママ、アプリアイコンを変更することはできます。
ただし、サイズがあってないことには変わらないので、ほかアプリアイコンと見比べるとあらく見えるかもしれません。
専用にちゃんと設定したくなりますが、どうしたら...🤔
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>icon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>wataten_icon</string>
</array>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string></string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>CFBundleAlternateIcons~ipad</key>
<dict>
<key>icon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>wataten_icon_ipad</string>
<string>wataten_icon_ipadpro</string>
</array>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string></string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
<string>wataten_icon_ipadpro</string>
というのを追記しました。
もちろん、wataten_icon_ipadproというファイル名で画像も追加します。
これで、iPad Pro(3rd) でもしっかりちゃんと変更できるようになります!
画像ファイル名の指定は array でできるので、多分ですが、@2xとかで命名しなくても
<array>
<string>icon_60.png</string>
<string>icon_120.png</string>
</array>
という書き方でもいけそうなきがします(やってませんが)