Unityから簡単にiOSアプリアイコンの動的変更ができるパッケージを作りました! AppIconChangerUnity

github.com

animation.gif

AlternateIconについて

基本的にiOSアプリのアイコンは埋め込みで、アプリを更新しない限りアイコンの変更は出来ませんでしたが、
アイコンを埋め込んでおきさえすればアプリ内から変更できる、というのがAlternateIconです。
最近では、デレステでも実装されて話題になっていました。

そんなAlternateIconをUnityから簡単に使えるようにするのが、このAppIconChangerUnityです。

AppStore上でのアイコンも変更してA/Bテストを行う、なんてことも出来るそうです。
https://help.apple.com/app-store-connect/#/devb53f12312

アイコンの準備

  • PackageManagerから Add package from git URL を選択し https://github.com/kyubuns/AppIconChangerUnity.git?path=Assets/AppIconChanger をインポートします。

  • コンテキストメニューから AlternateIcon を作ります。

    • 複数のアイコンを登録したい場合、このAlternateIconを複数作ります。

f:id:kyubuns:20220226131758p:plain

  • 名前とアイコンを登録します。

f:id:kyubuns:20220226131822p:plain

  • 準備はこれだけです!

使い方

Debug.Log($"アイコン変更できる? -> {AppIconChanger.iOS.SupportsAlternateIcons}");
Debug.Log($"今のアイコンは? -> {AppIconChanger.iOS.AlternateIconName ?? "デフォルト"}");
AppIconChanger.iOS.SetAlternateIconName("demo_blue"); // アイコンを変更

これだけで簡単にアイコン変更出来ちゃいます。
アイコン変更時のダイアログなどはOSが出してくるものなので制御出来ません。悪しからず。

細かい話

アプリアイコンのサイズは?

TypeをAuto Generateにすると、ビルド時に自動的に適切なサイズのアイコンが生成されます。
TypeをManualにすると全てのサイズを個別に指定できます。

f:id:kyubuns:20220226131933p:plain

前も作ってなかった?

実はバージョン番号を見れば分かるのですが、今回はv2になりました。
v1はXcode11時代に実装していたのですが、なんとXcode13からアイコン指定のフォーマットが変更になり、
A/Bテストなどの新機能を使うには新しいフォーマットに変更する必要があったためほぼ作り直しました。