ホームページ開発ツール>Xojo / Real Studio Trial and Error・Tahoeで採用されたアイコンのスタイルに対応してみる

 Xojo / Real Studio Trial and Error

Tahoeで採用されたアイコンのスタイルに対応してみる

目次
 はじめに

 以下は、Xojo Cocoaビルドについての話題です。

 macOS 26 Tahoeから新たに、アイコンがダークやクリア等、ダイナミックに切り替わる機能が追加されました。Xcode製アプリでは対処法が公開されていますが、Xojo製アプリについては見つけられなかったので、調べてみました。

 なお検証には、Xojo 2021 Release 2.1を用いています。(開発:Mac mini 2018 + macOS 15.7 Sequoia)(検証:Mac mini 2024 + macOS 26.0 Tahoe)


 経緯

 まずはルート確認のため、アップルのドキュメントに従って、Xcodeベースで試行してみました。

 参考サイト(1):Creating your app icon using Icon Composer | Apple Developer Documentation

 元画像はベクターデータが推奨されているので、ここではInkscapeを使って、簡単な画像を作成しました(注1)。
 これをIcon Composerに取り込み、調整後にicon形式で保存(注1)し、Xcodeプロジェクトに追加してビルド。
 出来上がったアプリをTahoe環境に置いて、スタイルを切り替えてみたところ、期待通りの動作をすることを確認しました。
注1:保存時のファイル名は一貫して「App」としている。これはXojoのデフォルトのアイコンファイル名が「App.icns」なので、整合を図るため。
 さて、これをXojo製アプリにどう適用するか、です。
 Finder上の操作で切り替わることから、アプリのコードレベルで実現しているとは考え難かったので、アイコン関連の情報はResourcesフォルダー内にあるだろうと当たりをつけて見てみると、以下の3つがありました。
S Shot51
 Base.lprojフォルダーはStoryboard関連なので、除外して良さそうです。
 Assets.carは、以前にも取り上げましたが、ここ最近のアイコン関連のファイルとしてはポピュラーなものです。おそらく、これが本体のようです。
 ちなみに、App.icnsファイルは従来からの標準形ですですが、プレビューでみると、256x256(144dpi)、128x128(72)、32x32(144)、16x16(72)のデフォルト画像のみで、ファイルサイズも数十KBしかなく、従来OSとの互換用?のような印象です。

 ということで、Assets.carApp.icnsをXojo製アプリにコピーして様子を見たのですが、変化しません。まだ足りないようです。
 そこで、Xcode/Xojo両アプリのinfo.plistを比較してみたところ、アイコン関係ではCFBundleIconNameキーがXojoにはありませんでした。なので、これを追加してみたところ、…、期待通りの動作をすることが確認できました。
 やはり、コードは変更しなくていいようです。

 あと、「Assets.car」は固定文字列なので、アイコン名との照合をどこでやっているのか?(info.plistのアイコン関連キーには「App」しか記載がない)が気になるところですが、.iconファイル(Icon Composerの出力ファイル)名を「App」にしておけば辻褄は合う?ようなので、それ以上の追求はしていません。


 アイコンの作成
これは、実験で分かったことですが、Icon Composerは複数レイヤーを持つことができて、レイヤーごとに設定ができるのですが、レイヤー構造を持ったsvgファイルを読み込んでも、レイヤーは再現されませんでした。(何か技があるのかもしれませんが、未調査。)
なので、以下では手っ取り早く、Inkscapeの各レイヤーを別々に保存して、それらをフォルダーに纏め、フォルダーをIcon Composerにドラッグしてレイヤーを再現する、という方法をとっています。
 まずは、svg形式で出力できるベクターグラフィックエディター(ここではInkscape)で元画像を作成します。
  1. Inkscapeを起動し、新規ドキュメントのサイズを1024x1024に設定。(単位がpxになっていることを確認。)
  2. 背景画像(白色で全面をカバー)、前景画像(左側に緑色の帯)、テキスト(黒色で「β」)の各オブジェクト(レイヤー)を作成。
    (注1:テキストは念のため、パス>オブジェクトをパスへ、を実行。)
    (注2:角丸処理はIcon Composerがやってくれるため、ここでは矩形で作成。)
    S Shot52
    (クリックで拡大)
  3. 調整後、各レイヤーを個別にファイル出力(ファイル名は順に、Base.svgLeft.svgText.svg)。これらをAppという名前のフォルダーに纏めておく。
 次に、Icon Composerでアイコンファイルを作成します。
  1. Icon Composerを起動し、ウィンドウに、Appフォルダーをドラッグ&ドロップする。
  2. 初期状態では、下図のように、グラデーションが青になっているので、白とグレーに置き換える。
    S Shot53
    (クリックで拡大)
  3. 初期状態では、下図のように、ハイライトがレイヤー毎についてしまっているので、全体にかかるようにする。(フォルダーに対して設定。)
    (注:参考サイト(1)にはSpecularをオフにする解説があるが、それだと完全除去はできない?ようだ。)
    S Shot54
    (クリックで拡大)
  4. DarkとMonoは(同一の)独自カラーを設定。(背景は黒に近いグレー、テキストは白、左側帯はRGB値それぞれを黒寄りに調整。)
    S Shot55
    (アイコン画像は適用前。クリックで拡大)
    S Shot56
    (アイコン画像は適用後。クリックで拡大)
  5. 名前を「App」として保存。(拡張子「icon」が付加される。)
 引き続き、Xcode 26でAssets.carファイルを作成します。
  1. Xcodeを起動し、macOS>Application>Appを選択してプロジェクトを作成。
    (注:このプロジェクトはAssets.carファイル作成のためだけのもので、コードは書きません。)
  2. 左ペインにApp.iconをドラッグ&ドロップする。
  3. 中央ペインの「App Icon」をAppに変更する。
    S Shot57
    (クリックで拡大)
  4. ビルドする。
  5. ビルドされたアプリを、右クリック>パッケージの内容を表示、で開き、Resourcesフォルダー内のAssets.carApp.icnsファイルをコピーし、任意の場所(ここでは、以下で作成するXojoプロジェクトと同じフォルダー内)にペーストする。

 Xojoでの実装
  1. Xojoで新規プロジェクトを作成(コードの実装はありません。ファイル関連の処理のみです。)
  1. 以下の内容でテキストファイルを作成し、名前をInfo.plistとして保存。
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    	<key>CFBundleIconName</key>
    	<string>App</string>
    </dict>
    </plist>
    
  2. プロジェクトに、Info.plistをドラッグ&ドロップ。

  3. プロジェクト左ペインのBuild Settings>macOS上で右クリックし、Add to "Build Settings">Build Step>Copy Filesを選択。
  4. 右ペインの「Destination」にResources Folderを指定。
  5. 中央ペインにAssets.carApp.icnsをドラッグ&ドロップ。
  6. ビルドする。
 Tahoe上で設定を変更したところ、スタイルに応じて、アイコン画像が変化することを確認しました。
S Shot 8

 おわりに

 Icon Composer上でのカラーの変更は、単色ならば容易ですが、写真のような場合はどうすればいいのか、は未調査です。(そもそも、そんな複雑な画像を含むアイコンは使うな、ということなのかもしれませんが。)

 あと、(光源位置以外の)ハイライトのカスタマイズが可能なのかも未調査です。(個人的にはもう少しマイルドにしたいのですが…)


 お世話になったサイト

 貴重な情報をご提供頂いている皆様に、お礼申し上げます。(以下、順不同)

 参考サイト(1):Creating your app icon using Icon Composer | Apple Developer Documentation


 更新履歴

 2025.10.09 新規作成


[Home]  [MacSoft]  [Donation]  [History]  [Privacy Policy]  [Affiliate Policy]